在本系列中我们首先来学习一些Guava的集合框架,也就是这个package:com.google.common.collect
在这个包下面有一些通用的集合接口和一些相关的类。
集合类型:
BiMap
它是java.util.Map接口的一个扩展,它的特性就是它的key和value都是唯一的并且是一一对应的。也就是说“可逆”。简单的描述就是根据key能拿到唯一的value,根据value也能够拿到唯一的key。
Multiset
它是Collection的扩展,就如同List一样能够容纳重复的值。它的典型应用就是“直方图”。
Multimap
Multimap是一个新类型,有点类似java.util.Map,但是可能对于相同的key含有多个entries。
ListMultimap
ListMultimap是Multimap的一个扩展,也能够容纳相同的entries,同时支持随机访问一个特定key的值。
SetMultimap
SetMultimap是Multimap的一个扩展,不容许容纳相同的entries,也就是说如果有相同的key出现在SetMultimap中,那么这些key对应的值一定是不相同的。
SortedSetMultimap
SortedSetMultimap是SetMultimap的一个扩展,对于一个给定的key对应的value是一个SortedSet。
Table
Table是一个新的类型,有点象java.util.Map,但是它是根据行key和列key的坐标来索引value的。
ClassToInstanceMap
An extension of Map
that associates a raw type with an instance of that type.
集合的实现
List
ImmutableList
Set
ImmutableSet
ImmutableSortedSet
ContiguousSet (see Range)
Map
ImmutableMap
ImmutableSortedMap
MapMaker
BiMap
ImmutableBiMap
HashBiMap
EnumBiMap
EnumHashBiMap
Multiset
ImmutableMultiset
HashMultiset
LinkedHashMultiset
TreeMultiset
EnumMultiset
ConcurrentHashMultiset
Multimap
ImmutableMultimap
ImmutableListMultimap
ImmutableSetMultimap
ArrayListMultimap
HashMultimap
TreeMultimap
LinkedHashMultimap
LinkedListMultimap
Table
ImmutableTable
ArrayTable
HashBasedTable
TreeBasedTable
ClassToInstanceMap
ImmutableClassToInstanceMap
MutableClassToInstanceMap
Classes of static utility methods
Collections2
Iterators
Iterables
Lists
Maps
Queues
Sets
Multisets
Multimaps
Tables
ObjectArrays
Comparison
Ordering
ComparisonChain
Abstract implementations
AbstractIterator
AbstractSequentialIterator
ImmutableCollection
UnmodifiableIterator
UnmodifiableListIterator
Ranges
Range
RangeMap
DiscreteDomain
ContiguousSet
Other
Interner, Interners
Constraint, Constraints
MapConstraint, MapConstraints
MapDifference, SortedMapDifference
MinMaxPriorityQueue
PeekingIterator
Forwarding collections
ForwardingCollection
ForwardingConcurrentMap
ForwardingIterator
ForwardingList
ForwardingListIterator
ForwardingListMultimap
ForwardingMap
ForwardingMapEntry
ForwardingMultimap
ForwardingMultiset
ForwardingNavigableMap
ForwardingNavigableSet
ForwardingObject
ForwardingQueue
ForwardingSet
ForwardingSetMultimap
ForwardingSortedMap
ForwardingSortedMultiset
ForwardingSortedSet
ForwardingSortedSetMultimap
ForwardingTable