• Java集合类汇总记录--guava篇


    BiMap

    HashBiMap<K,V>

    实现了两份哈希表数据结构(本类独立实现)。分别负责两个方向的映射。

    EnumBiMap<K,V>

    两个EnumMap对象分别负责两个方向的映射。

    EnumHashBiMap<K,V>

    一个EnumMap对象负责K到V映射,一个HashMap对象负责V到K的影身。

    MultiMap

    HashMultimap<K,V>

    使用HashMap<K,HashSet<V>>对象实现。

    TreeMultimap<K,V>

    使用TreeMap<K,TreeSet<V>>实现。

    ArrayListMultimap

    使用HashMap<K, ArrayList<V>>实现。

    LinkedHashMultimap

    使用LinkedHashMap<K, LinkedHashSet<V>>实现。

    LinkedListMultimap<K,V>

    使用HashMap<K, class KeyList<K,V>>实现。

    KeyList是一个双向链表类。保存了一个特定的K。相应的全部Value的值。

    另外,LinkedListMultimap还维护了一个由Map中全部的Entry组成的双向链表。

    由两种双向链表保证迭代的顺序。

    MultiSet

    HashMultiset

    使用HashMap<K, class Count>实现。Count是一个计数的类。

    LinkedHashMultiset

    使用LinkedHashMap<K, classCount>实现。

    TreeMultiset

    独立实现了一个AVL树。树的每一个节点保存了一个int类型的字段,表示元素数量。

    ConcurrentHashMultiset

    使用ConcurrentHashMap<E,AtomicInteger>实现。

    EnumMultiset

    使用EnumMap<E, Count>实现。

      

    Table

    ArrayTable<R,C,V>

    固定大小的二维数组,创建的时候须要指定R和C的有效对象列表。以后不能改动。

    内部包括三个数据结构:(1) V的数组,长度为行数量*列数量。(2) 从R对象到index的ImmutableMap。

    (3)从C对象到index的ImmutableMap。

    HashBasedTable<R,C,V>

    内部实现上採用了HashMap<R,HashMap<C,V>>的形式。

    TreeBasedTable<R,C,V>

    内部实现上採用了TreeMap<R, TreeMap<C,V>>的形式。

    MutableClassToInstanceMap

    从类到类实例的映射。

    TreeRangeSet/TreeRangeMap

    特点:Key是一个区间。

    仅仅读集合类

    特点:一旦创建后就无法改动。

    Interface

    JDK or Guava?

    Immutable Version

    Collection

    JDK

    ImmutableCollection

    List

    JDK

    ImmutableList

    Set

    JDK

    ImmutableSet

    SortedSet/NavigableSet

    JDK

    ImmutableSortedSet

    Map

    JDK

    ImmutableMap

    SortedMap

    JDK

    ImmutableSortedMap

    Multiset

    Guava

    ImmutableMultiset

    SortedMultiset

    Guava

    ImmutableSortedMultiset

    Multimap

    Guava

    ImmutableMultimap

    ListMultimap

    Guava

    ImmutableListMultimap

    SetMultimap

    Guava

    ImmutableSetMultimap

    BiMap

    Guava

    ImmutableBiMap

    ClassToInstanceMap

    Guava

    ImmutableClassToInstanceMap

    Table

    Guava

    ImmutableTable

  • 相关阅读:
    C++小项目:directx11图形程序(七):modelclass
    C++小项目:directx11图形程序(六):cameraclass
    C++小项目:directx11图形程序(五):shadersclass
    C++小项目:directx11图形程序(四):d3dclass
    C++小项目:directx11图形程序(三):graphicsclass
    C++小项目:directx11图形程序(二):systemclass
    舞台上加载一外部SWF,舞台如何调用该swf内部方法呢?
    as3绘制抛物线
    Unity常用代码总结
    C# ref和out区别介绍
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7102759.html
Copyright © 2020-2023  润新知