对象数组练习(增删改查)
对象数组练习(增删改查)
定义了一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同
学生的属性:学号,姓名,年龄。
要求1.再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2.添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息
如果存在,则删除,如果不存在,则提示删除失败。
要求4.删除完毕之后,遍历所有学生信息。
要求5.查询数组id为“heima002"的学生,如果存在,则将他的年龄+1岁
先建立一个Javabean类
package heima.Test07;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;}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.添加完毕之后,遍历所有学生信息。
package heima.Test07;public class StudentTest {public static void main(String[] args) {//1.创建数组来存储学生对象Student[] arr = new Student[3];Student s1 = new Student(001, "liuneng", 18);Student s2 = new Student(002, "zhaoliu", 17);Student s3 = new Student(003, "li", 19);//2.把学生放进数组里面arr[0] = s1;arr[1] = s2;arr[2] = s3;//要求1.再次添加一个对象,并在添加的时候进行学号的唯一性判断;Student s4 = new Student(002, "zhao", 16);Boolean flag = contians(arr, s4.getID());if (flag) {//1.当前ID已存在,不用添加System.out.println("当前Id已存在");} else {//当前ID不存在 查询数组是否存满int count = getcount(arr);if(count== arr.length){//当前数组已经存满Student[] newarr = newarr(arr);newarr[count] = s4;printarr(newarr);//遍历数组}else{arr[count] = s4;printarr(arr);}}}public static Boolean contians (Student[]arr,int ID){//比较是否重复for (int i = 0; i < arr.length; i++) {Student s = arr[i];int age = s.getID();if ( age!= 0) {if(age==ID){return true;}}}return false;}public static int getcount(Student[] arr) {//判断已经存了几个对象int count = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {count++;}}return count;}public static Student[] newarr(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 void printarr(Student[] arr){//遍历数组for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println(arr[i].getID() + " " + arr[i].getName() + " " + arr[i].getAge());}}}}
要求3:通过id删除学生信息
如果存在,则删除,如果不存在,则提示删除失败。
要求4.删除完毕之后,遍历所有学生信息。
package heima.Test07;public class StudentTest01 {public static void main(String[] args) {//1.创建数组来存储学生对象Student[] arr = new Student[3];Student s1 = new Student(1, "liuneng", 18);Student s2 = new Student(2, "zhaoliu", 17);Student s3 = new Student(3, "li", 19);//2.把学生放进数组里面arr[0] = s1;arr[1] = s2;arr[2] = s3;//判断索引int count= contion(arr,2);if(count>=0){arr[count]=null;System.out.println("删除成功");//遍历数组printarr(arr);}else{System.out.println("不存在打印失败");}}//找到目标索引public static int contion (Student[] arr,int count) {for (int i = 0; i < arr.length; i++) {Student s = arr[i];if (arr[i]!=null){int t= s.getID();if (t == 1){return i;}}}return -1;}public static void printarr (Student[] arr) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println(arr[i].getID() + "\t" + arr[i].getName() + "\t" + arr[i].getAge());}}}
}
要求5.查询数组id为“2"的学生,如果存在,则将他的年龄+1岁
package heima.Test07;public class Student02 {public static void main(String[] args) {//1.创建数组来存储学生对象Student[] arr = new Student[3];Student s1 = new Student(1, "liuneng", 18);Student s2 = new Student(2, "zhaoliu", 17);Student s3 = new Student(3, "li", 19);//2.把学生放进数组里面arr[0] = s1;arr[1] = s2;arr[2] = s3;//先要找到ID为2的学生对于的索引int count= contion(arr,2);//判断索引if(count>=0){//将原来的年龄拿出来Student stu = arr[count];//将他的年龄+1int age = stu.getAge()+1;//将修改完的年龄修改stu.setAge(age);//遍历数组printarr(arr);}else{//不存在直接提示System.out.println("不存在打印失败");}}public static int contion (Student[] arr,int count) {for (int i = 0; i < arr.length; i++) {Student s = arr[i];if (arr[i]!=null){int t= s.getID();if (t == count){return i;}}}return -1;}public static void printarr (Student[] arr) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {System.out.println(arr[i].getID() + "\t" + arr[i].getName() + "\t" + arr[i].getAge());}}}}