资讯专栏INFORMATION COLUMN

HashMap/TreeMap等六种Map选用要点

jone5679 / 1673人阅读

不算并发的话,java的Map(目前)一共有六种

常用:HashMap

较常用:TreeMap、LinkedHashMap、EnumMap

不太常用:WeakHashMap、IdentityHashMap

除了LinkedHash继承Hash,其他都是继承AbstractMap

Tree与Hash的不同是,Tree是有序的(目前使用红黑树),因此元素必须实现Comparable接口

添加元素,Tree比Hash慢,但只是一点点

LinkedHash记住插入元素的顺序,put和get都会把位置挪到最后!

Enum的key是枚举

WeakHash使用弱引用保存key,如果这个key没人引用,就会定时回收(tomcat源码里有使用)

IdentityHash的key不使用hashCode(),使用System.identityHashCode,比较不用equals,而用==。在对象序列化等才有用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74857.html

相关文章

  • Java常见集合知识详解

    摘要:集合的种类常见的集合类分如下几个种类详解接口是和接口的父接口,也是集合类除外根接口。接口集合中元素的存放特点是元素有序,同一元素可重复。总结中集合是一个非常重要的知识点,在实际运用中也是常常会使用到。 集合的种类 常见的集合类分如下几个种类: Collection - List - ArrayList - LinkedList - Set - HashSet...

    lewinlee 评论0 收藏0
  • 站在巨人肩膀上看源码-Map

    摘要:在学习的实现类是基于实现的前,先来介绍下接口及其下的子接口先看下的架构图如上图是映射接口,中存储的内容是键值对。是继承于的接口。中的内容是排序的键值对,排序的方法是通过比较器。 Map 在学习Set(Set的实现类是基于Map实现的)、HashMap、TreeMap前,先来介绍下Map接口及其下的子接口.先看下Map的架构图:showImg(https://segmentfault.c...

    xiaotianyi 评论0 收藏0
  • 集合小记

    摘要:解決沖突开放定址法拉链法表解決沖突开放定址法再哈希法链地址法建立公共溢出区并发包中的线程安全的集合容器线程安全的,不允许为,默认个的数组,每个中实现就是了,通过定位。基于数组,线程安全的集合类,容量可以限制。 List   List 元素是有序的、可重复,实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack。   ArrayList:动态数组...

    alaege 评论0 收藏0
  • Java 线程相关类

    摘要:提供了线程安全的共享对象,在编写多线程代码时,可把不安全的整个变量封装进,或者把该对象与线程相关的状态使用保存并不能替代同步机制,两者面向的问题领域不同。 ThreadLocal类 使用ThreadLocal类可以简化多线程编程时的并发访问,使用这个工具类可以很简捷地隔离多线程程序的竞争资源。Java5之后,为ThreadLocal类增加了泛型支持,即ThreadLocal Threa...

    Sanchi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<