java中的HashMap多层嵌套
短信预约 -IT技能 免费直播动态提醒
java HashMap多层嵌套
package chapter12;
import java.util.HashMap;
public class Demo03 {
//班级 -组 -学生
static HashMap<String,HashMap<String,HashMap<String,Integer>>> map= new HashMap<>();
public static void main(String[] args) {
HashMap<String,HashMap<String,Integer>> map50= new HashMap<>();
HashMap<String,Integer> map50_1= new HashMap<>();
map50_1.put("50_1_3",77);
map50_1.put("50_1_2",88);
map50_1.put("50_1_1",99);
map50.put("第一组",map50_1);
HashMap<String,Integer> map50_2= new HashMap<>();
map50_2.put("50_2_3",75);
map50_2.put("50_2_2",85);
map50_2.put("50_2_1",95);
map50.put("第二组",map50_2);
map.put("通达50班",map50);
HashMap<String,HashMap<String,Integer>> map51= new HashMap<>();
HashMap<String,Integer> map51_1= new HashMap<>();
map51_1.put("51_1_3",77);
map51_1.put("51_1_2",88);
map51_1.put("51_1_1",99);
map51.put("第一组",map51_1);
HashMap<String,Integer> map51_2= new HashMap<>();
map51_2.put("51_2_3",75);
map51_2.put("51_2_2",85);
map51_2.put("51_2_1",95);
map51.put("第二组",map51_2);
map.put("通达51班",map51);
HashMap<String,HashMap<String,Integer>> map52= new HashMap<>();
HashMap<String,Integer> map52_1= new HashMap<>();
map52_1.put("52_1_3",77);
map52_1.put("52_1_2",88);
map52_1.put("52_1_1",99);
map52.put("第一组",map52_1);
HashMap<String,Integer> map52_2= new HashMap<>();
map52_2.put("52_2_3",75);
map52_2.put("52_2_2",85);
map52_2.put("52_2_1",95);
map52.put("第二组",map52_2);
map.put("通达52班",map52);
map.forEach((className,cMap)->{
System.out.println(className+"信息展示:");
System.out.println("*******************************");
cMap.forEach((group,gMap)->{
System.out.println(className+group);
gMap.forEach((name,score)->{
System.out.println("姓名:"+name+"\t分数:"+score);
});
});
System.out.println("*****************************");
});
// forEach();
}
// public static void forEach(){
// map.forEach((className,cMap)->{
// System.out.println(className+"信息展示:");
// System.out.println("*******************************");
// cMap.forEach((group,gMap)->{
// System.out.println(className+group);
// gMap.forEach((name,score)->{
// System.out.println("姓名:"+name+"\t分数:"+score);
// });
// });
// System.out.println("*****************************");
// });
// }
}
三层HashMap的嵌套
package cn.itcast_04;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class 集合的多层嵌套 {
public static void main(String[] args) {
//创建集合1
HashMap<String,HashMap<String,ArrayList<Student>>> dx =
new HashMap<String,HashMap<String,ArrayList<Student>>>();
//创建动漫区
HashMap<String,ArrayList<Student>> dm = 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("闻人翊",29);
Student s4 = new Student("张楚岚 ",29);
array2.add(s3);
array2.add(s4);
//添加
dm.put("日漫", array1);
dm.put("国漫", array2);
//创建小说区
HashMap<String,ArrayList<Student>> xs = new HashMap<String,ArrayList<Student>>();
//创建玄幻集合
ArrayList<Student> array3 = new ArrayList<Student>();
//创建并添加数据
Student s5 = new Student("狠人大帝 ",25);
Student s6 = new Student("林动 ",32);
array3.add(s5);
array3.add(s6);
//创建奇幻集合
ArrayList<Student> array4 = new ArrayList<Student>();
//创建并添加数据
Student s7 = new Student("唐三 ",21);
Student s8 = new Student("比比东 ",42);
array4.add(s7);
array4.add(s8);
//添加
xs.put("玄幻", array3);
xs.put("奇幻", array4);
dx.put("动漫", dm);
dx.put("小说", xs);
//遍历
Set<String> hmset= dx.keySet();
for(String hmkey:hmset) {
System.out.println(hmset);
HashMap<String,ArrayList<Student>> hmvalue = dx.get(hmkey);
Set<String> hm1set= hmvalue.keySet();
for(String hm1key:hm1set) {
System.out.println("\t"+hm1set);
ArrayList<Student> value = hmvalue.get(hm1key);
for(Student s:value) {
System.out.println("\t\t"+s.getName()+"-------"+s.getAng());
}
}
}
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341