zoukankan      html  css  js  c++  java
  • 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 }

    运行结果,如下:

  • 相关阅读:
    [MySQL] InnoDB三大特性之 插入缓冲
    字节对齐《c和指针》笔记包含位域结构体的内存对齐(32bit,GCC)
    反编译想到的代码安全问题
    剪切\编辑歌曲软件
    照片行【生活随笔】井冈山之行
    埃里克食品浅谈垃圾食品
    C++ 堆排序实现
    SQLite数据库
    全光网络的前世今生
    hdu1201(从出生长18岁经过多少天)
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4855852.html
Copyright © 2011-2022 走看看