• 不算并发的话,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,而用==。在对象序列化等才有用

ouyida3
117 声望3 粉丝

技术爱好者,敏捷粉丝,关注前端、java、数据库和云计算。