Java基础知识强化之集合框架笔记34:List练习之集合的嵌套遍历

1. 需求:

  我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList<Student>
  但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList<Student>
  而我现在有多个ArrayList<Student>。也要用集合存储,怎么办呢?
  就是这个样子的:ArrayList<ArrayList<Student>>

2. 案例

(1)案例图解:

(2)代码实现:

• 首先编写一个学生类Student.java,如下:

 1 package cn.itcast_01;
 2 
 3 public class Student {
 4     private String name;
 5     private int age;
 6 
 7     public Student() {
 8         super();
 9     }
10 
11     public Student(String name, int age) {
12         super();
13         this.name = name;
14         this.age = age;
15     }
16 
17     public String getName() {
18         return name;
19     }
20 
21     public void setName(String name) {
22         this.name = name;
23     }
24 
25     public int getAge() {
26         return age;
27     }
28 
29     public void setAge(int age) {
30         this.age = age;
31     }
32 
33 }

• 逻辑实现类ArrayListDemo.java,如下:

 1 package cn.itcast_01;
 2 
 3 import java.util.ArrayList;
 4 
 5 /*
 6  * 集合的嵌套遍历
 7  * 需求:
 8  *         我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList<Student>
 9  *         但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList<Student>。
10  *         而我现在有多个ArrayList<Student>。也要用集合存储,怎么办呢?
11  *         就是这个样子的:ArrayList<ArrayList<Student>>
12  */
13 public class ArrayListDemo {
14     public static void main(String[] args) {
15         // 创建大集合
16         ArrayList<ArrayList<Student>> bigArrayList = new ArrayList<ArrayList<Student>>();
17 
18         // 创建第一个班级的学生集合
19         ArrayList<Student> firstArrayList = new ArrayList<Student>();
20         // 创建学生
21         Student s1 = new Student("唐僧", 30);
22         Student s2 = new Student("孙悟空", 29);
23         Student s3 = new Student("猪八戒", 28);
24         Student s4 = new Student("沙僧", 27);
25         Student s5 = new Student("白龙马", 26);
26         // 学生进班
27         firstArrayList.add(s1);
28         firstArrayList.add(s2);
29         firstArrayList.add(s3);
30         firstArrayList.add(s4);
31         firstArrayList.add(s5);
32         // 把第一个班级存储到学生系统中
33         bigArrayList.add(firstArrayList);
34 
35         // 创建第二个班级的学生集合
36         ArrayList<Student> secondArrayList = new ArrayList<Student>();
37         // 创建学生
38         Student s11 = new Student("诸葛亮", 30);
39         Student s22 = new Student("司马懿", 28);
40         Student s33 = new Student("周瑜", 26);
41         // 学生进班
42         secondArrayList.add(s11);
43         secondArrayList.add(s22);
44         secondArrayList.add(s33);
45         // 把第二个班级存储到学生系统中
46         bigArrayList.add(secondArrayList);
47 
48         // 创建第三个班级的学生集合
49         ArrayList<Student> thirdArrayList = new ArrayList<Student>();
50         // 创建学生
51         Student s111 = new Student("宋江", 40);
52         Student s222 = new Student("吴用", 35);
53         Student s333 = new Student("高俅", 30);
54         Student s444 = new Student("李师师", 22);
55         // 学生进班
56         thirdArrayList.add(s111);
57         thirdArrayList.add(s222);
58         thirdArrayList.add(s333);
59         thirdArrayList.add(s444);
60         // 把第三个班级存储到学生系统中
61         bigArrayList.add(thirdArrayList);
62 
63         // 遍历集合
64         for (ArrayList<Student> array : bigArrayList) {
65             for (Student s : array) {
66                 System.out.println(s.getName() + "---" + s.getAge());
67             }
68         }
69     }
70 }

运行结果,如下:

原文地址:https://www.cnblogs.com/hebao0514/p/4855852.html