zoukankan      html  css  js  c++  java
  • Java中Map、HashMap、LinkedHashMap、TreeMap的区别

    Map:

      Map是一个接口不能实例化,Map接口主要有两个实现类:HashMap和TreeMap类。其中,HashMap类按哈希算法来存取对象,而TreeMap类可以对键对象进行排序;

      Map提供了一种映射关系,其中的元素是已键值对(key-value)的形式存储,能够实现根据key快速查找value;

      Map中的键值对以Entry类型的对象实例形式存在;

      键(key值)不可以重复,value值可以;

    HashMap:

      HashMap是Map的一个重要的实现类,基于哈希表实现;

      HashMap中的Entry对象是无序排列的;

      Key和Value值都可以为null,但是一个HashMap只能有一个Key值为null的映射(Key不可以重复);

    LinkedHashMap:

      LinkedHashMap内部有一个链表,保持Key插入的顺序。迭代的时候也时候按照插入的顺序迭代,而且迭代的时候比HashMap快;

      LinkedHashMap拥有HashMap的所有特性,比HashMap多维护一个双向链表,因此可以按照插入的顺序从头部或者尾部迭代(是有序的),但是对内存的开销也要比HashMap大、性能也要差一些;

      

    TreeMap:

      TreeMap的底层是通过红黑数实现的;没有调优选项,所以该树处于平衡状态;它的 containsKey , get , put and remove 方法的时间复杂度是 log(n) ,并且它是按照 key 的自然顺序(或者指定排序)排列,与 LinkedHashMap 不同, LinkedHashMap 保证了元素是按照插入的顺序排列。

  • 相关阅读:
    内存对齐
    C++中构造函数
    计算机视觉领域的大牛主页
    各种银行卡的收费情况
    常识
    毕业生必须知道
    计算机视觉领域资料
    人际关系
    生活常识
    可使用在项目的web gantt甘特图有哪些?
  • 原文地址:https://www.cnblogs.com/a-fei/p/12189512.html
Copyright © 2011-2022 走看看