1. 程式人生 > >集合中的集合_儲存和遍歷(增強型for迴圈和迭代器)

集合中的集合_儲存和遍歷(增強型for迴圈和迭代器)

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());
			}

		}

	}
}