当前位置 : 主页 > 编程语言 > java >

java 复杂对象数组练习 添加和遍历

来源:互联网 收集:自由互联 发布时间:2022-10-26
Javabean package test_4; 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() {r

      Javabean

package test_4;

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; }



                              Javatest  (main)

package test_4;

public class studentTest {

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;

//要求1. 再添加一个学生,并判断是否是唯一性的。
//分析: 先把题拆解了。
//先想办法添加一个学生。

Student stu4 = new Student(4,"zhaoliu",26);

//把stu4 添加到数组里面,有两种情况,1.数组已满 (这种情况只能再创建一个新数组 长度等于旧数组+1). 2.数组未满。

//需要注意:唯一性的判断 : 要是已经存在就不用添加了,不存在才添加,所以要先判断。所以 先创建一个方法来判断 是否

boolean flag = contains(arr,stu4.getId());

if(flag) {
System.out.println("当前id重复,请修改后再添加");

}else {
int count = getCount(arr);
if(count == arr.length) {
//已经满了
//1.创建一个新数组 大小等于老数组+1
//2.把老数组的内容复制过来。
Student[] newArr = creatNewArr(arr);

newArr[count] = stu4;

printArr(newArr);

}else {

arr[count] = stu4;//注意:getCount 返回的值 =2 有两种意思,1.表示数组里面有2个元素,
// 2.表示下一次添加数组就是添加到2索引的位置

printArr(arr);
}

}


}

//创建方法是

// 1.我要干什么?唯一性判断 // 2.要完成这个事情 我需要怎么做 要数组和id // 3.要不要返回值 要返回值。 public static boolean contains(Student[] arr,int id) { for(int i = 0 ; i<arr.length ; i++) {

//依次获得数组里面的学生信息
Student stu = arr[i];

if(stu != null) {

//比较的是id 所以需要获得id
int sid = stu.getId();

//比较

if(sid == id) {
return true; //注意因为是和每一个数组的id进行比较 所以应该循坏完之后再返回false。
}

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;
}


//1.创建一个新数组 大小等于老数组+1
//2.把老数组的内容复制过来。

public static Student[] creatNewArr(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++) {
Student stu = arr[i];
if(stu != null) {
System.out.println(stu.getId() + "," + stu.getName() + "," + stu.getAge());
}
}
}

}



      





【文章转自:新加坡服务器 http://www.558idc.com/sin.html 复制请保留原URL】
上一篇:copyOfRange方法--源码分析
下一篇:没有了
网友评论