java零基础的坎坷之路【38】——TreeMap类以及HashMap、HashMap、ArrayList之间的相互嵌套使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LiyangBai/article/details/88088479
1、TreeMap类概述:
	键是红黑树结构,可以保证键的排序和唯一性。
	
2、Map集合案例

 案例①、“aabcdhskalks”,获取字符串中每一个字母出现的次数,要求结果:a(3)b(1)c(1)d(1)h(1)k(2)l(1)s(2)

import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/**
 * “aabcdhskalks”,获取字符串中每一个字母出现的次数,要求结果:a(3)b(1)c(1)d(1)h(1)k(2)l(1)s(2)
 * @author Administrator
 *
 */
public class CharGetNumDemo {
	public static void main(String[] args) {
		//定义一个字符串
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String s = sc.nextLine();
		//定义一个TreeMap集合(输出结构有排序),键Character,值Integer
		TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
		//把字符串转化为字符数组
		char[] array = s.toCharArray();
		//遍历字符数组得到每一个字符,在集合中去查找
		for(char c:array){
			if(tm.containsKey(c)){
				tm.put(c, tm.get(c)+1);
			}else{
				tm.put(c, 1);
			}
		}
		//定义字符串缓冲区
		StringBuilder sb = new StringBuilder();
		//遍历集合,添加内容
		Set<Entry<Character, Integer>> me =  tm.entrySet();
		for (Entry<Character, Integer> entry : me) {
			sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
		}
		String result = sb.toString();
		System.out.println("result:"+result);
	}
}

案例②、HashMap嵌套HashMap

import java.util.HashMap;
import java.util.Set;

/**
 * 输出结果:
            传智播客
                    jc    基础班
                            王昭君    23
                            西施    20
                    jy    就业班
                            杨玉环    18
                            貂蝉    19 
 * @author Administrator
 *
 */
public class HashMapAndHashMap {
	public static void main(String[] args) {
		//创建大集合对象
		HashMap<String, HashMap<String, Integer>> hmhm = new HashMap<String, HashMap<String, Integer>>();
		
		//创建基础班集合对象
		HashMap<String, Integer> jchm = new HashMap<String, Integer>();
		//添加元素
		jchm.put("王昭君", 23);
		jchm.put("西施", 20);
		hmhm.put("基础班", jchm);
		
		//创建就业班集合对象
		HashMap<String, Integer> jyhm = new HashMap<String, Integer>();
		//添加元素
		jyhm.put("杨玉环", 18);
		jyhm.put("貂蝉", 19);
		hmhm.put("就业班", jyhm);
		
		//遍历
		Set<String> keys = hmhm.keySet();
		for (String key : keys) {
			HashMap<String, Integer>  value = hmhm.get(key);
			System.out.println(key);
			Set<String> vlaueKeys = value.keySet();
			for (String valueKey : vlaueKeys) {
				Integer valueKeyValue = value.get(valueKey);
				System.out.println("\t"+valueKey+"---"+valueKeyValue);
			}
		}
	}
}

案例③、HashMap嵌套ArrayList

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * 输出结果:
			三国演义
					吕布
					周瑜
			笑傲江湖
					令狐冲
					任盈盈
			神雕侠侣
					杨过
					小龙女
 * @author Administrator
 *
 */
public class HashMapAndArrayListDemo {
	public static void main(String[] args) {
		//创建大集合HashMap
		HashMap<String,ArrayList<String>> hma = new HashMap<String,ArrayList<String>>();
		
		//创建三国演义ArrayList
		ArrayList<String> arr1 = new ArrayList<String>();
		//添加元素
		arr1.add("吕布");
		arr1.add("周瑜");
		hma.put("三国演义", arr1);

		// 创建笑傲江湖ArrayList
		ArrayList<String> arr2 = new ArrayList<String>();
		// 添加元素
		arr2.add("令狐冲");
		arr2.add("任盈盈");
		hma.put("笑傲江湖", arr2);

		// 创建神雕侠侣ArrayList
		ArrayList<String> arr3 = new ArrayList<String>();
		// 添加元素
		arr3.add("杨过");
		arr3.add("小龙女");
		hma.put("神雕侠侣", arr3);
		
		//遍历
		Set<String> keys = hma.keySet();
		for (String k : keys) {
			System.out.println(k);
			ArrayList<String> vs = hma.get(k);
			for (String vv : vs) {
				System.out.println("\t"+vv); 
			}
		}
	}
}

案例④、ArrayList嵌套HashMap 

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * 输出结果:
			周瑜---小乔
			吕布---貂蝉
			
			郭靖--黄蓉
			杨过--小龙女
			
			令狐冲---任盈盈
			林平之---岳灵珊
 * @author Administrator
 *
 */
public class ArrayListAndHashMapDemo {
	public static void main(String[] args) {
		//创建大集合ArrayList
		ArrayList<HashMap<String,String>> arr = new ArrayList<HashMap<String,String>>();
		//创建元素1
		HashMap<String,String> hm1 = new HashMap<String,String>();
		//添加元素
		hm1.put("周瑜", "小乔");
		hm1.put("吕布", "貂蝉");
		arr.add(hm1);
		
		// 创建元素2
		HashMap<String, String> hm2 = new HashMap<String, String>();
		// 添加元素
		hm2.put("郭靖", "黄蓉");
		hm2.put("杨过", "小龙女");
		arr.add(hm2);

		// 创建元素3
		HashMap<String, String> hm3 = new HashMap<String, String>();
		// 添加元素
		hm3.put("令狐冲", "任盈盈");
		hm3.put("林平之", "岳灵珊");
		arr.add(hm3);
		
		//遍历
		for (HashMap<String, String> hms : arr) {
			System.out.println(hms);
			Set<String> ks = hms.keySet();
			for (String k : ks) {
				String v = hms.get(k);
				System.out.println("\t"+k+"---"+v);
			}
		}
	}
}

案例⑤、HashMap嵌套HashMap嵌套ArrayList

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * 输出结果:
	传智播客
			bj	北京校区
						jc	基础班
								杨玉环	18
								西施	20
						jy 	就业班
								赵雅芝	20
								郭美美	19
			sh	上海校区
						jc	基础班
								柳岩	28
								李沁	24
						jy 	就业班
								王昭君	19
								貂蝉	24
			gz	广州校区
						jc	基础班
								井下惠子	25
								川岛洋子	16
						jy 	就业班
								徐冬冬		28
								赵丽颖		20
 * @author Administrator
 *
 */
public class HmAndHmAndArrListDemo {
	public static void main(String[] args) {
		//创建大集合HashMap
		HashMap<String,HashMap<String,ArrayList<Beauty>>> hmhmarr = new HashMap<String,HashMap<String,ArrayList<Beauty>>>();
		
		//创建小集合HashMap
		HashMap<String,ArrayList<Beauty>> hmarr1 = new HashMap<String,ArrayList<Beauty>>();
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr1 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b1 = new Beauty("杨玉环",18);
		Beauty b2 = new Beauty("西施",20);
		//添加元素
		arr1.add(b1);
		arr1.add(b2);
		hmarr1.put("基础班", arr1);
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr2 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b3 = new Beauty("赵雅芝",20);
		Beauty b4 = new Beauty("郭美美",19);
		//添加元素
		arr2.add(b3);
		arr2.add(b4);
		hmarr1.put("就业班", arr2);
		
		hmhmarr.put("北京校区", hmarr1);

		//创建小集合HashMap
		HashMap<String,ArrayList<Beauty>> hmarr2 = new HashMap<String,ArrayList<Beauty>>();
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr3 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b5 = new Beauty("柳岩",28);
		Beauty b6 = new Beauty("李沁",24);
		//添加元素
		arr3.add(b5);
		arr3.add(b6);
		hmarr2.put("基础班", arr3);
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr4 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b7 = new Beauty("王昭君",19);
		Beauty b8 = new Beauty("貂蝉",24);
		//添加元素
		arr4.add(b7);
		arr4.add(b8);
		hmarr2.put("就业班", arr4);
		
		hmhmarr.put("上海校区", hmarr2);
		
		//创建小集合HashMap
		HashMap<String,ArrayList<Beauty>> hmarr3 = new HashMap<String,ArrayList<Beauty>>();
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr5 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b9 = new Beauty("井下惠子",25);
		Beauty b10 = new Beauty("川岛洋子",16);
		//添加元素
		arr5.add(b9);
		arr5.add(b10);
		hmarr3.put("基础班", arr5);
		
		//创建Value值ArrayList
		ArrayList<Beauty> arr6 = new ArrayList<Beauty>();
		//创建元素Beauty对象
		Beauty b11 = new Beauty("徐冬冬",28);
		Beauty b12 = new Beauty("赵丽颖",20);
		//添加元素
		arr6.add(b11);
		arr6.add(b12);
		hmarr3.put("就业班", arr6);
		
		hmhmarr.put("广州校区", hmarr3);
		
		//遍历
		Set<String> ks = hmhmarr.keySet();
		for (String k : ks) {
			System.out.println(k);
			HashMap<String,ArrayList<Beauty>> kv = hmhmarr.get(k);
			Set<String> kvks = kv.keySet();
			for (String kvk : kvks) {
				System.out.println("\t"+kvk);
				ArrayList<Beauty> kvkvarr = kv.get(kvk);
				for (Beauty b : kvkvarr) {
					System.out.println("\t\t"+b);
				}
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/LiyangBai/article/details/88088479