由于我是初学者,所以有错误请一定要指正。
目录
题目
定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。
学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息。如果存在,则删除,如果不存在,则提示删除失败。
要求4:删除完毕之后,遍历所有学生信息。
要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁
代码
JavaBean 代码
// Student 类定义了学生的基本属性和方法
package lxh.cat.prac7;
public class Student {
// 学生的属性
private int id; // 学号
private String name; // 姓名
private int age; // 年龄
// 无参构造方法
public Student() {
}
// 带有所有属性的构造方法
public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// getter 和 setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
要求1 与 要求2 代码
// StudentTest 类包含 main 方法,用于测试学生数组的添加和打印功能
package lxh.cat.prac7;
public class StudentTest {
public static void main(String[] args) {
// 创建一个长度为3的学生数组
Student[] arr = new Student[3];
// 创建并初始化三个学生对象
Student stu1 = new Student(1, "zhangsan", 23);
Student stu2 = new Student(2, "lisi", 24);
// Student stu3 = new Student(3, "wangwu", 25); // 未使用的代码
// 将学生对象添加到数组中
arr[0] = stu1;
arr[1] = stu2;
// arr[2] = stu3; // 未使用的代码
// 创建第四个学生对象
Student stu4 = new Student(4, "zhaoliu", 26);
// 检查数组中是否已存在相同ID的学生
boolean flag = contains(arr, stu4.getId());
// 如果ID重复,则提示错误;否则,添加学生到数组
if(flag){
System.out.println("当前ID重复,请修改ID后再进行添加");
}else{
// 获取数组中非空元素的数量
int count = getCount(arr);
// 如果数组已满,则创建新数组并添加学生
if(count == arr.length){
Student[] newArr = createNewArr(arr);
newArr[count] = stu4;
printArr(newArr);
}else{
// 如果数组未满,则直接添加学生
arr[count] = stu4;
printArr(arr);
}
}
}
// 打印学生数组的信息
public static void printArr(Student[] arr){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
}
}
}
// 创建一个新的数组,长度比原数组多1
public static Student[] createNewArr(Student[] arr){
Student[] newArr = new Student[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
newArr[i] = arr[i];
}
return newArr;
}
// 获取数组中非空元素的数量
public static int getCount(Student[] arr){
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i] != null){
count++;
}
}
return count;
}
// 检查数组中是否存在具有特定ID的学生
public static boolean contains(Student[] arr, int id){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
int sid = stu.getId();
if(id == sid){
return true;
}
}
}
return false;
}
}
要求3 与 要求4 代码
// StudentTest2 类包含 main 方法,用于测试通过ID删除学生对象的功能
package lxh.cat.prac7;
public class StudentTest2 {
public static void main(String[] args) {
// 创建并初始化学生数组
Student[] arr = new Student[3];
Student stu1 = new Student(1, "zhangsan", 23);
Student stu2 = new Student(2, "lisi", 24);
Student stu3 = new Student(3, "wangwu", 25);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
// 获取ID为2的学生在数组中的索引
int index = getIndex(arr, 2);
System.out.println(index);
// 如果找到学生,则将其从数组中删除
if (index >= 0) {
arr[index] = null;
printArr(arr);
}else{
// 如果未找到学生,则打印错误信息
System.out.println("ID不存在,删除失败");
}
}
// 打印学生数组的信息
public static void printArr(Student[] arr){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
}
}
}
// 获取具有特定ID的学生在数组中的索引
public static int getIndex(Student[] arr, int id){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
int sid = stu.getId();
if(sid == id){
return i;
}
}
}
return -1;
}
}
要求5 代码
// StudentTest3 类包含 main 方法,用于测试修改学生年龄的功能
package lxh.cat.prac7;
public class StudentTest3 {
public static void main(String[] args) {
// 创建并初始化学生数组
Student[] arr = new Student[3];
Student stu1 = new Student(1, "zhangsan", 23);
Student stu2 = new Student(2, "lisi", 24);
Student stu3 = new Student(3, "wangwu", 25);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
// 获取ID为2的学生在数组中的索引
int index = getIndex(arr, 2);
System.out.println(index);
// 如果找到学生,则增加其年龄
if (index >= 0) {
Student stu = arr[index];
int newAge = stu.getAge() + 1; // 年龄加1
stu.setAge(newAge);
printArr(arr);
}else{
// 如果未找到学生,则打印错误信息
System.out.println("ID不存在,修改失败");
}
}
// 打印学生数组的信息
public static void printArr(Student[] arr){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
}
}
}
// 获取具有特定ID的学生在数组中的索引
public static int getIndex(Student[] arr, int id){
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if(stu != null){
int sid = stu.getId();
if(sid == id){
return i;
}
}
}
return -1;
}
}