Java中ArrayList集合嵌套存储和遍历

来源:互联网 发布:淘宝贷款怎么回事 编辑:程序博客网 时间:2024/06/03 22:59

这里写图片描述
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());            }        }    }}

结果:
这里写图片描述

原创粉丝点击