美文网首页
Java Map总结

Java Map总结

作者: 王振 | 来源:发表于2018-07-09 22:42 被阅读0次

HashMap

HashMap中键值

  1. 允许为空(null)
  2. 并且是非同步的

Hashtable

Hashtable中键值

  1. 不允许为空
  2. 是同步的

Hashtable和ConcurrentHashMap有什么分别呢?

  1. 它们都可以用于多线程的环境
  2. 但是当Hashtable的大小增加到一定的时候,性能会急剧下降,因为迭代时需要被锁定很长的时间。
  3. 因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,而其它的线程不需要等到迭代完成才能访问map。
  4. 简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定map的某个部分,而Hashtable则会锁定整个map。

ConcurentSkipListMap

ConcurrentSkipListMap继承AbstractMap,实现ConcurrentMap:

  1. SkipList跳表
    Skip List是一种随机化的数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间)。基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表(因此得名)。所有操作都以对数随机化的时间进行。Skip List可以很好解决有序链表查找特定值的困难。
  2. ConcurrentSkipListMap
    ConcurrentSkipListMap提供了一种线程安全的并发访问的排序映射表。内部是SkipList(跳表)结构实现,在理论上能够在O(log(n))时间内完成查找、插入、删除操作。调用ConcurrentSkipListMap的size时,由于多个线程可以同时对映射表进行操作,所以映射表需要遍历整个链表才能返回元素个数,这个操作是个O(log(n))的操作。

TreeMap 简介

  1. TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。
  2. TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。
  3. TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。
  4. TreeMap 实现了Cloneable接口,意味着它能被克隆
  5. TreeMap 实现了java.io.Serializable接口,意味着它支持序列化
  6. TreeMap基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
  7. TreeMap的基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n) 。
  8. TreeMap是非同步的。 它的iterator 方法返回的迭代器是fail-fastl的。

相关文章

  • Java 数据结构之 Map 学习总结

    Java 数据结构之 Map 学习总结 今天总结学习一下键值映射关系Map。 先了解下Map Map 是一种把键对...

  • HashMap

    Java HashMap 标签(空格分隔): Java source-code hash-map 总结 HashT...

  • Java Map总结

    HashMap HashMap中键值 允许为空(null) 并且是非同步的 Hashtable Hashtable...

  • List、Set和Map

    java 常用集合list与Set、Map区别及适用场景总结Java中容器[Collection(List,Set...

  • Java集合总结

    Java集合总结 概述 Java集合类主要由两个接口派生而出: Collection Map 这两个是Java集合...

  • Java中Map常用方法总结以及遍历方式的汇总

    Java中Map常用方法总结以及遍历方式的汇总 一、整理: 二、Map与Collection在集合框架中属并列存在...

  • java day 14

    Map java Map及Map.Entry详解Map是java中的接口,Map.Entry是Map的一个内部接口...

  • java容器总结Map

    Map接口 Map是 一个键值对的集合。也就是说,一个映射不能包含重复的键,每个键最多映射到一个值。该接口取代了D...

  • Java集合——Map总结

    Map是一种用于快速查找的数据结构,它以键值对的形式存储数据,每一个键都是唯一的,且对应着一个值,如果想要查找Ma...

  • 10.7 关于Java的Map的九个问题

    通常,Map是由一组键值对组成的数据结构,每个键只能在Map中出现一次。 本文总结了如何使用Java Map及其实...

网友评论

      本文标题:Java Map总结

      本文链接:https://www.haomeiwen.com/subject/vkdxpftx.html