集合框架-集合的巢狀遍歷(多層巢狀)
d:多層巢狀
package cn.itcast_06;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
/*
* 為了更符合要求:
* 這次的資料就看成是學生物件。
*
* 傳智
* bj 北京校區
* jc 基礎班
* 林青霞 27
* 風清揚 30
* jy 就業班
* 趙雅芝 28
* 武鑫 29
* sh 上海校區
* jc 基礎班
* 郭美美 20
* 犀利哥 22
* jy 就業班
* 羅玉鳳 21
* 馬徵 23
* gz 廣州校區
* jc 基礎班
* 王力巨集 30
* 李靜磊 32
* jy 就業班
* 郎朗 31
* 柳巖 33
* xa 西安校區
* jc 基礎班
* 范冰冰 27
* 劉意 30
* jy 就業班
* 李冰冰 28
* 張志豪 29
*/
public class HashMapDemo {
public static void main(String[] args) {
// 建立大集合
HashMap<String, HashMap<String, ArrayList<Student>>> hm = new HashMap<String, HashMap<String, ArrayList<Student>>>();
// 北京校區資料
HashMap<String, ArrayList<Student>> hm1 = new HashMap<String, ArrayList<Student>>();
ArrayList<Student> array1 = new ArrayList<Student>();
Student s1 = new Student("林青霞", 27);
Student s2 = new Student("風清揚", 30);
array1.add(s1);
array1.add(s2);
ArrayList<Student> array2 = new ArrayList<Student>();
Student s3 = new Student("趙雅芝", 28);
Student s4 = new Student("武鑫", 29);
array2.add(s3);
array2.add(s4);
hm1.put("基礎班", array1);
hm1.put("就業班", array2);
hm.put("北京校區", hm1);
// 晚上可以自己練習一下
// 上海校區資料自己做
// 廣州校區資料自己做
// 西安校區資料
HashMap<String, ArrayList<Student>> hm2 = new HashMap<String, ArrayList<Student>>();
ArrayList<Student> array3 = new ArrayList<Student>();
Student s5 = new Student("范冰冰", 27);
Student s6 = new Student("劉意", 30);
array3.add(s5);
array3.add(s6);
ArrayList<Student> array4 = new ArrayList<Student>();
Student s7 = new Student("李冰冰", 28);
Student s8 = new Student("張志豪", 29);
array4.add(s7);
array4.add(s8);
hm2.put("基礎班", array3);
hm2.put("就業班", array4);
hm.put("西安校區", hm2);
// 遍歷集合
Set<String> keyset1 = hm.keySet();
for (String key1 : keyset1) {
System.out.println(key1);
HashMap<String, ArrayList<Student>> keyvalue1 = hm.get(key1);
Set<String> keyset2 = keyvalue1.keySet();
for (String key2 : keyset2) {
System.out.println("\t" + key2);
ArrayList<Student> keyvalue2 = keyvalue1.get(key2);
for (Student s : keyvalue2) {
System.out.println("\t\t" + s.getName() + "---"+ s.getAge());
}
}
}
}
}
package cn.itcast_06;
public class Student {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
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;
}
}
ZHOU_VIP:
package cn.itcast.mybatis.pojo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class hello {
public static void main(String[] args) {
HashMap<String, HashMap<String, ArrayList<Student>>> hm = new HashMap<String, HashMap<String, ArrayList<Student>>>();
HashMap<String, ArrayList<Student>> hm1 = new HashMap<String, ArrayList<Student>>();
ArrayList<Student> array1 = new ArrayList<Student>();
Student s1 = new Student("劉備", 27);
Student s2 = new Student("關羽", 30);
array1.add(s1);
array1.add(s2);
ArrayList<Student> array2 = new ArrayList<Student>();
Student s3 = new Student("曹操", 28);
Student s4 = new Student("典韋", 30);
array2.add(s3);
array2.add(s4);
hm1.put("漢", array1);
hm1.put("魏", array2);
hm.put("三國", hm1);
HashMap<String, ArrayList<Student>> hm2 = new HashMap<String, ArrayList<Student>>();
ArrayList<Student> array3 = new ArrayList<Student>();
Student s5 = new Student("唐僧", 27);
Student s6 = new Student("孫悟空", 30);
array1.add(s5);
array1.add(s6);
ArrayList<Student> array4 = new ArrayList<Student>();
Student s7 = new Student("白骨精", 28);
Student s8 = new Student("蜘蛛精", 30);
array2.add(s7);
array2.add(s8);
hm2.put("師徒", array3);
hm2.put("妖怪", array4);
hm.put("西遊", hm2);
//得到鍵的集合:三國 西遊
Set<String> keyset = hm.keySet();
for (String key : keyset) {
//得到鍵值對物件
HashMap<String, ArrayList<Student>> keyvalue = hm.get(key);
//得到鍵的集合:魏 蜀 師徒 妖怪
Set<String> keyset2 = keyvalue.keySet();
for (String key2 : keyset2) {
//得到物件的集合
ArrayList<Student> al = keyvalue.get(key2);
for (Student s : al) {
System.out.println(s.getName()+"---"+s.getAge());
}
}
}
}
}
相關文章
- [work] python巢狀字典的遞迴遍歷Python巢狀遞迴
- dom4j遍歷巢狀xml巢狀XML
- 2020-11-14 java------------巢狀遍歷集合,練習scanner和stringbuiled排序等APIJava巢狀UI排序API
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- iOS開發·runtime+KVC實現多層字典模型轉換(多層資料:模型巢狀模型,模型巢狀陣列,陣列巢狀模型)iOS模型巢狀陣列
- Laravel Baum 巢狀集合模型中文文件翻譯-部分Laravel巢狀模型
- Python的if語句多層巢狀怎麼使用Python巢狀
- vue elementUI 表單校驗(多層巢狀)VueUI巢狀
- 多層 UIScrollView 巢狀滾動解決方案UIView巢狀
- 封裝多型巢狀封裝多型巢狀
- 多層巢狀後的 Fragment 懶載入實現巢狀Fragment
- 分層資料 Hierarchical Data 探索 (3.巢狀集合模型) 無限極分類巢狀模型
- 高效遍歷匹配Json資料,避免巢狀迴圈[轉]JSON巢狀
- Android實現雙層ViewPager巢狀AndroidViewpager巢狀
- 列表巢狀操作巢狀
- vue路由巢狀Vue路由巢狀
- element-ui的----el-form表單校驗巢狀表單校驗(表單多層巢狀)+el-table和el-form巢狀使用表單校驗UIORM巢狀
- html的巢狀規則HTML巢狀
- Vue中的巢狀路由Vue巢狀路由
- 微信小程式自定義tab,多層tab巢狀實現微信小程式巢狀
- python 利用 for ... else 跳出雙層巢狀迴圈Python巢狀
- Collection集合的遍歷
- SCSS 巢狀屬性CSS巢狀
- SCSS 巢狀規則CSS巢狀
- 展開巢狀列表巢狀
- Locust 任務巢狀巢狀
- Oracle 巢狀表(轉)Oracle巢狀
- 巢狀類遞迴巢狀遞迴
- vue(19)巢狀路由Vue巢狀路由
- 巢狀子查詢巢狀
- Blazor巢狀傳遞Blazor巢狀
- 集合迭代/遍歷
- MySQL Join原理分析(緩衝塊巢狀與索引巢狀迴圈)MySql巢狀索引
- 微信小程式如何阻止多層巢狀元件的點選事件冒泡微信小程式巢狀元件事件
- 集合框架(List儲存字串並遍歷)框架字串
- golang的巢狀事務管理Golang巢狀
- JavaScript中if巢狀assert的方法JavaScript巢狀
- vue的元件巢狀關係Vue元件巢狀
- 008. vue元件的巢狀Vue元件巢狀