zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【刷题】LOJ 6009 「网络流 24 题」软件补丁
    lab 项目
    js内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒数,和 unix时间戳是对应的秒数,差了1000倍
    js 原生: 身份证脱敏、唯一随机字符串uuid、对于高 index 元素的隐藏与显示
    diy 滚动条 样式 ---- 核心代码
    PC_后台管理系统
    三端兼容项目
    阿里小程序
    到位App_jQuery_art-template
    一步一步 copy163: 网易严选 ---- vue-cli
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7102759.html
Copyright © 2011-2022 走看看