当实际开发中遇到分集合处理问题,比如学校里不同班级不同年级里面学生信息需要存在集合里面时,就可以利用这种嵌套思想处理:
举例如下:
//测试类:
public class Test {
public static void main(String[] args) {
//创建三个集合将学生对象传入;
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("jack",20));
list.add(new Student("baby",2));
list.add(new Student("tom",8));
ArrayList<Student> list1 = new ArrayList<>();
list1.add(new Student("louise",20));
list1.add(new Student("trump",21));
list1.add(new Student("tony",18));
ArrayList<Student> list2 = new ArrayList<>();
list2.add(new Student("dylan",20));
list2.add(new Student("babys",21));
list2.add(new Student("tomy",28));
//创建集合将上述三个集合对象传入
ArrayList<ArrayList<Student>> arrayList = new ArrayList<>();
arrayList.add(list);
arrayList.add(list1);
arrayList.add(list2);
//双层for循环遍历三个集合中的元素:
for (int i = 0; i < arrayList.size(); i++) {
//获取三个集合对象:
ArrayList<Student> studentArrayList = arrayList.get(i);
for (int j = 0; j < studentArrayList.size(); j++) {
//获取集合中学生对象;
Student student = studentArrayList.get(j);
//打印学生信息
System.out.println(student);
}
System.out.println();
}
System.out.println("----------------------------------");
//新for循环遍历更简单:
for (ArrayList<Student> studentArrayList : arrayList) {
for (Student student : studentArrayList) {
System.out.println(student);
}
}
}
}
//学生类:
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}