在本系列中咱們首先來學習一些Guava的集合框架,也就是這個package:com.google.common.collectjava
在這個包下面有一些通用的集合接口和一些相關的類。api
集合類型:
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的值。oracle
SetMultimap
SetMultimap是Multimap的一個擴展,不允許容納相同的entries,也就是說若是有相同的key出如今SetMultimap中,那麼這些key對應的值必定是不相同的。框架
SortedSetMultimap
SortedSetMultimap是SetMultimap的一個擴展,對於一個給定的key對應的value是一個SortedSet。post
Table
Table是一個新的類型,有點象java.util.Map,可是它是根據行key和列key的座標來索引value的。學習
ClassToInstanceMap
An extension of Map
that associates a raw type with an instance of that type.google
集合的實現
List
ImmutableListspa
Set
ImmutableSet
ImmutableSortedSet
ContiguousSet (see Range) code
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