集合的嵌套遍历
需求:
我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList<Student>
但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList<Student>。
而我现在有多个ArrayList<Student>。也要用集合存储,怎么办呢?
就是这个样子的:ArrayList<ArrayList<Student>>
public class Student {
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, int age) {
super();
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;
}
}
import java.util.ArrayList;
/*
* 集合的嵌套遍历
* 需求:
* 我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList<Student>
* 但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList<Student>。
* 而我现在有多个ArrayList<Student>。也要用集合存储,怎么办呢?
* 就是这个样子的:ArrayList<ArrayList<Student>>
*/
public classArrayListDemo5 {
public static void main(String[] args) {
// 创建大集合
ArrayList<ArrayList<Student>>bigArrayList = newArrayList<ArrayList<Student>>();
// 创建第一个班级的学生集合
ArrayList<Student>firstArrayList = newArrayList<Student>();
// 创建学生
Students1 = newStudent("唐僧", 30);
Students2 = newStudent("孙悟空", 29);
Students3 = newStudent("猪八戒", 28);
Students4 = newStudent("沙僧", 27);
Students5 = newStudent("白龙马", 26);
// 学生进班
firstArrayList.add(s1);
firstArrayList.add(s2);
firstArrayList.add(s3);
firstArrayList.add(s4);
firstArrayList.add(s5);
// 把第一个班级存储到学生系统中
bigArrayList.add(firstArrayList);
// 创建第二个班级的学生集合
ArrayList<Student>secondArrayList = new ArrayList<Student>();
// 创建学生
Students11 = newStudent("诸葛亮", 30);
Students22 = newStudent("司马懿", 28);
Students33 = newStudent("周瑜", 26);
// 学生进班
secondArrayList.add(s11);
secondArrayList.add(s22);
secondArrayList.add(s33);
// 把第二个班级存储到学生系统中
bigArrayList.add(secondArrayList);
// 创建第三个班级的学生集合
ArrayList<Student>thirdArrayList = newArrayList<Student>();
// 创建学生
Students111 = newStudent("宋江", 40);
Students222 = newStudent("吴用", 35);
Students333 = newStudent("高俅", 30);
Students444 = newStudent("李师师", 22);
// 学生进班
thirdArrayList.add(s111);
thirdArrayList.add(s222);
thirdArrayList.add(s333);
thirdArrayList.add(s444);
// 把第三个班级存储到学生系统中
bigArrayList.add(thirdArrayList);
// 遍历集合
for(ArrayList<Student> array : bigArrayList) {
for (Student s : array) {
System.out.println(s.getName() +"---" + s.getAge());
}
}
}
运行结果:
唐僧---30
孙悟空---29
猪八戒---28
沙僧---27
白龙马---26
诸葛亮---30
司马懿---28
周瑜---26
宋江---40
吴用---35
高俅---30
李师师---22