java容器:5、如何决定使用HashMap还是TreeMap?HashMap和TreeMap的区别?

HashMap和TreeMap的区别?

1、概述

一般而言,在map中插入、删除、定位元素,HashMap是最好的选择。

TreeMap实现了SortMap接口,可以将元素按照顺序取出(不是放入的顺序),一般默认是自然升序,也可以自定义顺序。
所以如果需要按照自然顺序或者自定义顺序遍历键,那么TreeMap会更好。

(另外,LinkedHashMap内部有一个链表,在取出时可以按照元素放入的顺序取)

2、代码分析

(1)HashMap取出为无序;TreeMap为自然顺序升序。

Map<String,String> map=new HashMap<>();
		map.put("k", "CCC");
		map.put("g", "BBB");
		map.put("a", "EEE");
		map.put("y", "DDD");
		map.put("o", "AAA");
		for(String key:map.keySet()){
			System.out.println(key+"-----"+map.get(key));
		}
		System.out.println("********************");
		Map<String,String> map2=new TreeMap<>();
		map2.put("k", "CCC");
		map2.put("g", "BBB");
		map2.put("a", "EEE");
		map2.put("y", "DDD");
		map2.put("o", "AAA");
		for(String key:map2.keySet()){
			System.out.println(key+"-----"+map2.get(key));
		}

运行结果:
在这里插入图片描述

(2)TreeMap实现取出元素自定义排序

排序容器分析推荐:
容器排序:TreeMap和TreeSet实现自定义排序的使用方法?两者的区别?

发布了57 篇原创文章 · 获赞 13 · 访问量 1116

猜你喜欢

转载自blog.csdn.net/weixin_42924812/article/details/105054218