1. 程式人生 > >Java中ArrayList集合巢狀儲存和遍歷

Java中ArrayList集合巢狀儲存和遍歷

這裡寫圖片描述
student類:

package day16_Test;
/*
 * 學生類:
 *      成員變數:姓名、年齡
 *      成員方法
 *      構造方法
 *      
 * */
public class Student {
    private String name;
    private int age;
    //快捷鍵
    //alt+shift+s+o
    //alt+shift+s+r
    //alt+shift+s+c
    //alt+shift+equals重寫判斷方法
    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; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override
public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (age != other.age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }

測試實現:

package day16_Test;

import java.util.ArrayList;

/*
 * 集合的巢狀遍歷
 * 需求:
 *      我們班有學生,每個學生是不是一個物件。
 *      所以我們可以使用一個集合表示我們班級的學生。ArrayList<Student>
 *      但是呢,我們旁邊是不是還有班級,每個班級是不是也是一個ArrayList<Student>
 *      而我現在有多個ArrayList<Student>。也要 用集合儲存,怎麼辦?
 *      就是這個樣子的:ArrayList<ArrayList<Student>>
 * 
 * */
public class Test1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 建立大集合
        ArrayList<ArrayList<Student>> bigArrayList = new ArrayList<ArrayList<Student>>();
        // 建立第一個班級學生集合
        ArrayList<Student> firstArrayList = new ArrayList<Student>();
        // 建立學生
        Student s1 = new Student("唐僧", 21);
        Student s2 = new Student("沙僧", 22);
        Student s3 = new Student("豬八戒", 23);
        // 班級新增學生
        firstArrayList.add(s1);
        firstArrayList.add(s2);
        firstArrayList.add(s3);
        // 第一個班級新增大集合
        bigArrayList.add(firstArrayList);

        // 建立第二個班級學生集合
        ArrayList<Student> secondArrayList = new ArrayList<Student>();
        // 建立學生
        Student s11 = new Student("曹操", 18);
        Student s22 = new Student("劉備", 40);
        Student s33 = new Student("孫權", 28);
        // 班級新增學生
        firstArrayList.add(s11);
        firstArrayList.add(s22);
        firstArrayList.add(s33);
        // 第二個班級新增大集合
        bigArrayList.add(secondArrayList);

        // 遍歷集合
        for (ArrayList<Student> array : bigArrayList) {
            for (Student s : array) {
                System.out.println(s.getName()+"---"+s.getAge());
            }
        }
    }
}

結果:
這裡寫圖片描述