(集合) 集合嵌套练习(存储并遍历)

目录

目录

练习一:ArrayList<HashMap<String, String>>

练习二:HashMap<String, HashMap<String, Integer>>,>

练习三:HashMap<String, ArrayList<String>>,>

练习四:获取字符串中每一个字母出现的次数

练习五:HashMap<String, HashMap<String, ArrayList<Student>>>



练习一:ArrayList<HashMap<String, String>>

        ArrayList<HashMap<String,String>> arrayList=new ArrayList<HashMap<String,String>>();
        HashMap<String,String> hashMap=new HashMap<String, String>();
        hashMap.put("jay","河岸");
        hashMap.put("jasom","河被");
        hashMap.put("tom","河写");
        hashMap.put("cat","河打");
        arrayList.add(hashMap);
        //遍历
        for (HashMap<String,String> al : arrayList){
            Set<String> k1=al.keySet();
            for (String ss : k1){
                String sss=al.get(ss);
                System.out.println(ss+sss);
            }
        }

练习二:HashMap<String, HashMap<String, Integer>>

        //创建neu集合
        HashMap<String,HashMap<String,Integer>> neu=new  HashMap<String,HashMap<String,Integer>>();
        //创建jc集合
        HashMap<String,Integer> jcMap=new HashMap<String,Integer>();
        jcMap.put("jay",20);
        jcMap.put("tom",22);
        //创建jy集合
        HashMap<String,Integer> jyMap=new HashMap<String,Integer>();
        jyMap.put("john",21);
        jyMap.put("jason",23);

        neu.put("jc",jcMap);
        neu.put("jy",jyMap);

        //遍历
        Set<String> k1=neu.keySet();
        for (String ss : k1){
            HashMap<String,Integer> stu=neu.get(ss);
            Set<String> k2=stu.keySet();
            for (String sss : k2){
                Integer age=stu.get(sss);
                System.out.println(ss+sss+age);
            }
        }

练习三:HashMap<String, ArrayList<String>>

       HashMap<String, ArrayList<String>> hm=new  HashMap<String, ArrayList<String>>();

        ArrayList<String> arrayList=new ArrayList<String>();
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("c");

        hm.put("1",arrayList);

        ArrayList<String> arrayList1=new ArrayList<String>();
        arrayList1.add("d");
        arrayList1.add("e");
        arrayList1.add("f");
        hm.put("2",arrayList1);

        Set<String> k1=hm.keySet();

        for(String k : k1 ){
            System.out.println(k);
            ArrayList<String> arrayList2=hm.get(k);
            for (String ss : arrayList2){
                System.out.println(ss);
            }
        }

练习四:获取字符串中每一个字母出现的次数

/*
 * 需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
 * 
 * 分析:
 * 		A:定义一个字符串(可以改进为键盘录入)
 * 		B:定义一个TreeMap集合
 * 			键:Character
 * 			值:Integer
 * 		C:把字符串转换为字符数组
 * 		D:遍历字符数组,得到每一个字符
 * 		E:拿刚才得到的字符作为键到集合中去找值,看返回值
 * 			是null:说明该键不存在,就把该字符作为键,1作为值存储
 * 			不是null:说明该键存在,就把值加1,然后重写存储该键和值
 * 		F:定义字符串缓冲区变量
 * 		G:遍历集合,得到键和值,进行按照要求拼接
 * 		H:把字符串缓冲区转换为字符串输出
 */
        //键盘录入
        Scanner sc=new Scanner(System.in);
        String ss=sc.nextLine();
        //定义集合
        TreeMap<Character,Integer> tm=new TreeMap<Character, Integer>();
        //字符串缓冲对象
        char[] chs=ss.toCharArray();
        for (char ch : chs){
            Integer i=tm.get(ch);
            if (i==null){
                tm.put(ch,1);
            }
            else {
                i++;
                tm.put(ch,i);
            }
        }
        StringBuilder sb=new StringBuilder();
        //遍历
        Set<Character> set=tm.keySet();
        for(char ch : set){
            Integer value=tm.get(ch);
            sb.append(ch).append("*").append(value).append("*****");
        }
        System.out.println(sb);
        String result = sb.toString();
        System.out.println("result:"+result);

练习五:HashMap<String, HashMap<String, ArrayList<Student>>>

		// 创建大集合
		HashMap<String, HashMap<String, ArrayList<Student>>> czbkMap = new HashMap<String, HashMap<String, ArrayList<Student>>>();

		// 北京校区数据
		HashMap<String, ArrayList<Student>> bjCzbkMap = 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);
		bjCzbkMap.put("基础班", array1);
		bjCzbkMap.put("就业班", array2);
		czbkMap.put("北京校区", bjCzbkMap);

	

		// 西安校区数据
		HashMap<String, ArrayList<Student>> xaCzbkMap = 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);
		xaCzbkMap.put("基础班", array3);
		xaCzbkMap.put("就业班", array4);
		czbkMap.put("西安校区", xaCzbkMap);

		// 遍历集合
		Set<String> czbkMapSet = czbkMap.keySet();
		for (String czbkMapKey : czbkMapSet) {
			System.out.println(czbkMapKey);
			HashMap<String, ArrayList<Student>> czbkMapValue = czbkMap
					.get(czbkMapKey);
			Set<String> czbkMapValueSet = czbkMapValue.keySet();
			for (String czbkMapValueKey : czbkMapValueSet) {
				System.out.println("\t" + czbkMapValueKey);
				ArrayList<Student> czbkMapValueValue = czbkMapValue
						.get(czbkMapValueKey);
				for (Student s : czbkMapValueValue) {
					System.out.println("\t\t" + s.getName() + "---"
							+ s.getAge());
				}
			}
		}

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值