当前位置:   article > 正文

HashMap、LinkedMap和TreeMap的比较

linkedmap和treemap哪一个好

目的

主要想测试一下HashMap、LinkedHashMap和TreeMap的有序性

  1. import java.util.HashMap;
  2. import java.util.Iterator;
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6. import java.util.TreeMap;
  7. /**
  8. * 三种map是否有序测试:HashMap,LinkedMap,TreeMap
  9. *
  10. * @author Lynn
  11. *
  12. */
  13. public class TestMap {
  14. public static void main(String[] args) {
  15. Map<String,String> hashMap = new HashMap<String,String>();
  16. Map<String,String> linkedHashMap = new LinkedHashMap<String,String>();
  17. Map<String,String> treeMap = new TreeMap<String,String>();
  18. //添加相同的数据;
  19. hashMap.put("A", "A");
  20. hashMap.put("B", "B");
  21. hashMap.put("1", "1");
  22. hashMap.put("2", "2");
  23. linkedHashMap.put("A", "A");
  24. linkedHashMap.put("B", "B");
  25. linkedHashMap.put("1", "1");
  26. linkedHashMap.put("2", "2");
  27. treeMap.put("A", "A");
  28. treeMap.put("B", "B");
  29. treeMap.put("1", "1");
  30. treeMap.put("2", "2");
  31. Iterator iterator = hashMap.entrySet().iterator();
  32. System.out.println("HashMap的输出结果:");
  33. while(iterator.hasNext()) {
  34. Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
  35. System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
  36. }
  37. iterator = linkedHashMap.entrySet().iterator();
  38. System.out.println("LinkedMap的输出结果:");
  39. while(iterator.hasNext()) {
  40. Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
  41. System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
  42. }
  43. iterator = treeMap.entrySet().iterator();
  44. System.out.println("TreeMap的输出结果:");
  45. while(iterator.hasNext()) {
  46. Map.Entry<String, String> entity = (Entry<String, String>) iterator.next();
  47. System.out.println("[ key="+entity.getKey()+" value="+entity.getValue()+"]");
  48. }
  49. }
  50. }

运行结果:
873621-20180914112011598-646724648.png

结论

共同点:
HashMap,LinkedHashMap,TreeMap都属于Map;Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。
不同点:

  1. HashMap里面存入的键值对在取出的时候是随机的,也是我们最常用的一个Map.它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap 是最好的选择。
  2. TreeMap取出来的是排序后的键值对。但如果您要按自然顺序(字典顺序),那么TreeMap会更好。
  3. LinkedHashMap 是HashMap的一个子类,如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现。

参考
https://blog.csdn.net/u012889434/article/details/48055679/

转载于:https://www.cnblogs.com/LynnMin/p/9645468.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/305335
推荐阅读
相关标签
  

闽ICP备14008679号