TreeMap

由键决定:不重复、无索引、可排序。

可排序:对键进行排序。

TreeMap和TreeSet底层原理一样,均是红黑树结构。

两种排序规则:

1)实现Comparable接口,比较规则(在一个类的上方implenments Comparable).

2)创建集合时传递Comparator比较器对象,指定比较规则。

练习一:

TreeMap基本应用
需求1:键:整数表示id,值:字符串表示商品名称
要求:按照id的降序排列

public class test {
    public static void main(String [] args) {
    	TreeMap<Integer,String> t=new TreeMap<>(new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				return o2-o1;
			}
		});
    	t.put(1, "可口可乐");
    	t.put(2, "雷碧");
    	t.put(3, "粤利粤");
    	System.out.println(t);
    }
}

练习二:

统计个数
需求:字符串“aababcabdabcde",请统计字符串中每一个字符出现的次数,并按照以下格式输出输出结果:a (5)b(4)c(3)d(2)e (1)
 

public class test {
    public static void main(String [] args) {
    	String str="aababcabdabcde";
    	TreeMap<Character, Integer> t=new TreeMap<>();
    	for(int i=0;i<str.length();i++) {
    		char c=str.charAt(i);//获取每一个字符,添加到集合中
    		if(t.containsKey(c)) {//判断字符是否存在
    			//存在
    			int count=t.get(c);//获取键对应的值
    			count++;
    			t.put(c, count);
    		}else {
    			//不存在
    			t.put(c, 1);
    		}
    	}
    	System.out.println(t);
    	//按照格式输出,利用StringBuilder
    	StringBuilder sb=new StringBuilder();
    	//利用遍历进行拼接
    	Set<Character> set=t.keySet();
    	for(Character key:set) {
    		sb.append(key).append("(").append(t.get(key)).append(")");
    	}
    	System.out.println(sb);
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值