集合中的集合_儲存和遍歷(增強型for迴圈和迭代器)
阿新 • • 發佈:2018-12-25
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()); } } } }