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

  • 相关阅读:
    需要我们了解的SQL Server阻塞原因与解决方法
    SQL Server应用模式之OLTP系统性能分析
    第一章 scala环境搭建
    IO
    装饰器模式
    java 泛型方法
    文件格式转换
    spring ioc
    深入浅出Java模式设计之模板方法模式
    struts2
  • 原文地址:https://www.cnblogs.com/a-fei/p/12189512.html
Copyright © 2011-2022 走看看