java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java HashMap多层嵌套

java中的HashMap多层嵌套

投稿:jingxian

这篇文章主要介绍了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());
						 }
					}
				}						     		    
	}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文