TreeMap中文排序

    TreeMap的底层使用了红黑树来实现,像TreeMap对象中放入一个key-value 键值对时,就会生成一个Entry对象,这个对象就是红黑树的一个节点,其实这个和HashMap是一样的,一个Entry对象作为一个节点,只是这些节点存放的方式不同。

    存放每一个Entry对象时都会按照key键的大小按照二叉树的规范进行存放,所以TreeMap中的数据是按照key从小到大排序的,通过重写父类compare()方法来确定排序规则。

	public static void main(String[] args) {

		TreeMap<String, String> map = new TreeMap<String, String>(new Comparator<Object>() {
			Collator collator = Collator.getInstance();

			public int compare(Object  object1, Object  object2) {
				
				if (object1 == null || object2 == null)
					return 0;
				CollationKey ckey1 = collator.getCollationKey(String.valueOf(object1));
				CollationKey ckey2 = collator.getCollationKey(String.valueOf(object2));
				return ckey1.compareTo(ckey2);
			}
		});
		
               for (int i = 0; i < 2; i++) {
			String s = "" + (int) (Math.random() * 1000);
			map.put(s, String.valueOf(i));
		}
		  	
		map.put("B", "baidu");
		map.put("A", "alibaba");
		map.put("T", "tencent");
		map.put("BAT", "BAT");
		map.put("湖南", "长沙");
		map.put("湖北", "武汉");
		map.put("北京", "北京");
		map.put("天津", "天津");
		
                /*Iterator<Entry<String, String>> it=map.entrySet().iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}*/
	
		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println(entry.getKey()+","+entry.getValue());
		}

	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值