双重集合嵌套三种方式进行遍历
这样有什么好处,可以充分领略对象这个词在编程中的思想。
锻炼思路。
下面是一个小空间放入大空间的情景
例如:
西游记
- 唐僧
- 孙悟空
- 猪八戒
- 沙悟净
三国演义
- 刘备
- 关羽
- 张飞
水浒传
- 宋江
- 吴用
- 李逵
- 秦明
一部剧一个小单位放入一个集合,然后把小集合放入大集合
然后进行三种方式对集合进行遍历
三种方式分别为:
- 第一种方式对这个嵌套集合进行迭代处理
- 第二种方式对这个嵌套集合利用ArrayList提供的方法size()方法和get()方法进行加工获取
- 第三种方式对这个嵌套集合进行增强for循环(和第二种差不多)
下面是几种的代码
package cn1;
import java.util.ArrayList;
import java.util.Iterator;
public class JiheQiantao {
public static void main(String[] args) {
// 创建大集合
ArrayList<ArrayList<Student>> bigArr = new ArrayList<ArrayList<Student>>();
// 创建第一个班级学生集合
ArrayList<Student> grade1 = new ArrayList<Student>();
Student s1 = new Student("唐僧", 30);
Student s2 = new Student("孙悟空", 29);
Student s3 = new Student("沙僧", 27);
Student s4 = new Student("猪八戒", 26);
// 把学生装进班里面
grade1.add(s1);
grade1.add(s2);
grade1.add(s3);
grade1.add(s4);
// 把班级装进学生系统
bigArr.add(grade1);
// 创建第二个班级学生集合
ArrayList<Student> grade2 = new ArrayList<Student>();
Student s5 = new Student("刘备", 30);
Student s6 = new Student("关羽", 28);
Student s7 = new Student("张飞", 26);
// 把学生装进班里面
grade1.add(s5);
grade1.add(s6);
grade1.add(s7);
// 把班级装进学生系统
bigArr.add(grade2);
// 创建第三个班级学生集合
ArrayList<Student> grade3 = new ArrayList<Student>();
Student s8 = new Student("宋江", 30);
Student s9 = new Student("吴用", 29);
Student s10 = new Student("李逵", 27);
Student s11 = new Student("秦明", 26);
// 把学生装进班里面
grade1.add(s8);
grade1.add(s9);
grade1.add(s10);
grade1.add(s11);
// 把班级装进学生系统
bigArr.add(grade3);
System.out.println("第一种方式对这个嵌套集合进行迭代处理");
// 第一种方式对这个嵌套集合进行迭代处理
Iterator<ArrayList<Student>> itS = bigArr.iterator();
while (itS.hasNext()) {
Iterator<Student> it = itS.next().iterator();
while (it.hasNext()) {
Student stu = it.next();
System.out.println(stu.getName()+"---"+stu.getAge());
}
}
//第二种方式对这个嵌套集合利用ArrayList提供的方法size()方法和get()方法进行加工获取
System.out.println("第二种方式对这个嵌套集合利用ArrayList提供的方法size()方法和get()方法进行加工获取");
for(int i=0;i<bigArr.size();i++) {
for(int j=0;j<bigArr.get(i).size();j++) {
System.out.println(bigArr.get(i).get(j).name+"---"+bigArr.get(i).get(j).age);
}
}
// 第三种方式对这个嵌套集合进行增强for循环(和第二种差不多)
System.out.println("第三种方式对这个嵌套集合进行增强for循环(和第二种差不多)");
for(ArrayList<Student> al:bigArr) {
for(Student stu:al) {
System.out.println(stu.getName()+"---"+stu.getAge());
}
}
}
}
class Student {
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
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;
}
}