java中的HashMap多层嵌套

 

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;
/*
* 三层HashMap的嵌套
* 
* 动漫小说
*    dm   动漫区
*               rm  日漫:
*                        漩涡鸣人        27
*                        宇智波佐助      30
*               gm  国漫:
*                        闻人翊          29
*                        张楚岚          29
*    xs   小说区
*               xh  玄幻:
*                        狠人大帝      25
*                        林动          32
*               qh   奇幻
*                         唐三       21
*                         比比东     42
*/
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());
						 }
					}
				}						     		    
	}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程宝库

 利用Lambda快速生成map、多层嵌套mapList 转为 Map<id, bean>User是List对象的元素,ListList对象的变量名为:us ...