集合中的集合_存储和遍历(增强型for循环和迭代器)

本文通过具体示例演示了如何在Java中实现集合嵌套,即在一个学科的大集合中存储多个班级的小集合,并展示了如何添加学生到班级以及班级到学科的过程。此外,还提供了两种遍历这些集合的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package GuanQia3_test2_集合中套集合_第一次没想明白;
/*
 * 一个学科中有若干班级,每一个班级又有若干学生。整个学科一个大集合,
 * 若干个班级分为每一个小集合(集合嵌套之HashSet嵌套HashSet)。要求如下
 *	1、 学生类有两个属性,姓名和年龄,并定义有参构造、无参构造和getter/setter方法.
 *	姓名和年龄相同的视为同一学生
 *	2、向班级集合中添加若干个学生(至少两个学生)。
 *	2、向学科集合中添加所有班级(至少创建两个班级)。
 *	3、使用两种方法遍历学科集合,并打印出所有学生。
 */
import java.util.HashSet;
import java.util.Iterator;

public class JiHeZhongDeJiHe {

	public static void main(String[] args) {
		// 1.创建HashSet作为一个班级集合储存学生
		HashSet<Student> class1 = new HashSet<Student>();
		class1.add(new Student("zhangsan", 20));
		class1.add(new Student("lisi", 25));
		class1.add(new Student("lisi", 25));

		// 创建HashSet作为一个班级集合储存学生
		HashSet<Student> class2 = new HashSet<Student>();
		class2.add(new Student("wanwu", 23));
		class2.add(new Student("zhaoli", 27));

		// 创建HashSet<HashSet<Student>>作为一个学科集合储存班级
		HashSet<HashSet<Student>> xueKe = new HashSet<HashSet<Student>>();
		xueKe.add(class1);
		xueKe.add(class2);
		
		System.out.println(xueKe);

		System.out.println("--------------增强for遍历----------------");
		// 使用两种方法遍历学科集合,并打印出所有学生。
		// 增强for
		for (HashSet<Student> cls : xueKe) {
			for (Student student : cls) {
				System.out.println(student.getName() + "---" + student.getAge());
			}
		}

		System.out.println("--------------迭代器遍历----------------");

		// 迭代器遍历
		Iterator<HashSet<Student>> xueKeItr = xueKe.iterator();
		while (xueKeItr.hasNext()) {
			HashSet<Student> cls = xueKeItr.next();
			Iterator<Student> clsItr = cls.iterator();

			while (clsItr.hasNext()) {
				Student stu = clsItr.next();
				System.out.println(stu.getName() + "---" + stu.getAge());
			}

		}

	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nrsc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值