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 |
Java集合类汇总记录--guava篇的更多相关文章
- Java集合类汇总记录--JDK篇
接口类图 Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口.例如以下图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...
- Java集合类汇总记录-- apache.commons4(TreeList)
通常.Tree是Tree,List是List,两者不太可能混在一起.但apache-commons库却用tree实现了实现了List的接口,也就是TreeList类.与标准的LinkedList相比. ...
- java集合类深入分析之Queue篇
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- JAVA集合类汇总
一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...
- java集合类深入分析之Queue篇(Q,DQ)
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- JAVA集合类汇总 - 转载
一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...
- Java集合类学习记录
被标记为transient的属性在对象被序列化的时候不会被保存int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = Arrays.copyOf(arr1, new_le ...
- Java集合类常见面试知识点总结
微信公众号[Java技术江湖]一位阿里Java工程师的技术小站 Java集合类学习总结 这篇总结是基于之前博客内容的一个整理和回顾. 这里先简单地总结一下,更多详细内容请参考我的专栏:深入浅出Java ...
- java 集合类基础问题汇总
1.Java集合类框架的基本接口有哪些? 参考答案 集合类接口指定了一组叫做元素的对象.集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序.有的集合类允许重复的键,有些不允许 ...
随机推荐
- 【转】Linux 之 数据流重定向
转自:http://www.linuxidc.com/Linux/2012-09/69764.htm linux在你登入时,便将默认的标准输入.标准输出.标准错误输出安排成你的终端.I/O重定向就是你 ...
- jdk11安装没有jre文件夹
原因:jdk11安装之后是没有jre的 如果需要jre,需要到jdk目录下面去 打开命令窗口,然后执行如下命令: bin\jlink.exe --module-path jmods --a ...
- maven——项目构建和依赖管理工具
apache maven是一个用于项目构建和依赖管理的工具. 添加archetype https://repo1.maven.org/maven2/archetype-catalog.xml 更改本地 ...
- [Windows Server 2012] 安装Apache+PHP+MySQL
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:Win2012 ...
- hibernate注解之@Onetomany、@Manytoone、@JoinColumn
@Onetomany用于实体类与数据库表映射中少的一方,请看下面的例子. 假设一个用户只有一种角色,用户和角色是onetomany的关系 用户实体 @Entity @Table(name=" ...
- Shell基本运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加(注意使用 ...
- 内网jenkins如何配置gitlab自动拉取代码打包
在全局工具配置中添加git安装目录的配置 http://10.2.1.92:8080/jenkins/configureTools/git1.8.3.1/usr/bin/git 打开系统设置配置git ...
- Django - Ajax初识
当需要在弹出的对话框中,做判断操作时,需要用到ajax 1.host.html <!DOCTYPE html><html lang="en"><hea ...
- 30.3 FCL中的混合构造
30.3.2 Monitor类和同步块 internal sealed class Transaction { private readonly object _lock = new object( ...
- Modbus 协议解析