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 保证了元素是按照插入的顺序排列。

  • 相关阅读:
    Xilinx之软件平台 ISE与Vivado前世今生
    博客开园
    第一天:开始你的Jobeet项目
    MySQL之alter语句用法总结
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    MySQL中distinct和group by性能比较[转]
    GROUP BY,WHERE,HAVING之间的区别和用法
    split(),preg_split()与explode()函数分析与介
    解析posix与perl标准的正则表达式区别
    sql关键字的解释执行顺序
  • 原文地址:https://www.cnblogs.com/a-fei/p/12189512.html
Copyright © 2011-2022 走看看