有时候,我们会使用集合嵌套,这个情况还是很少见,了解一下就可以。下面我们举例一下:有一个学科,这个是一个大集合,学科有不同班级,班级可以看出是一个集合,每个班级里有多个人。
下面,通过嵌套ArrayList来遍历这个学科的人的名字和年龄。
我们先把自定义Peson类代码给写出来。
package list;
public class Person {
private String name;
private int age;
public Person() {
super();
}
public Person(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;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
利用嵌套ArrayList来实现打印输出学科下所有人的信息
package list;
import java.util.ArrayList;
public class Demo1_ArrayList {
public static void main(String[] args) {
ArrayList<ArrayList<Person>> list = new ArrayList();
//第一个班级
ArrayList<Person> al1 = new ArrayList<>();
al1.add(new Person("张三",23));
al1.add(new Person("李四",24));
al1.add(new Person("王五",25));
//第二个班级
ArrayList<Person> al2 = new ArrayList<>();
al2.add(new Person("赵六",26));
al2.add(new Person("周七",27));
al2.add(new Person("刘八",28));
//将班级集合添加到学科集合中
list.add(al2);
list.add(al1);
//迭代输出,嵌套for each循环
for (ArrayList<Person> al : list) {
for (Person p : al) {
System.out.println(p.getName()+"..."+p.getAge());
}
}
}
}
输出:
赵六...26
周七...27
刘八...28
张三...23
李四...24
王五...25
从输出结果,其实可以看到ArrayList的一个特点或者说List接口的一个特点就是,元素无序存和取。下篇开始,我们来学习Collection接口的另外一个子接口,Set接口,Set的特点就是存取有序和不重复。