双重集合嵌套三种方式进行遍历

双重集合嵌套三种方式进行遍历

这样有什么好处,可以充分领略对象这个词在编程中的思想。

锻炼思路。

下面是一个小空间放入大空间的情景

例如:

西游记

  1. 唐僧
  2. 孙悟空
  3. 猪八戒
  4. 沙悟净

三国演义

  1. 刘备
  2. 关羽
  3. 张飞

水浒传

  1. 宋江
  2. 吴用
  3. 李逵
  4. 秦明

一部剧一个小单位放入一个集合,然后把小集合放入大集合
然后进行三种方式对集合进行遍历
三种方式分别为:

  1. 第一种方式对这个嵌套集合进行迭代处理
  2. 第二种方式对这个嵌套集合利用ArrayList提供的方法size()方法和get()方法进行加工获取
  3. 第三种方式对这个嵌套集合进行增强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;
	}
	
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理想艺术!马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值