[Google Guava笔记](七)collect

5.51  CustomConcurrentHashMap<K,V>:继承 AbstractMap<K,V>,实现 ConcurrentMap<K,V>

 

以下内容引自:http://www.blogjava.net/xylz/archive/2010/07/20/326661.html,在此对imxylz表示感谢!

       默认情况下 ConcurrentHashMap是用了 16个类似 HashMap 的结构,其中每一个 HashMap拥有一个独占锁。也就是说最终的效果就是通过某种 Hash算法,将任何一个元素均匀的映射到某个 HashMap Map.Entry上面,而对某个一个元素的操作就集中在其分布的 HashMap上,与其它 HashMap无关。这样就支持最多 16个并发的写操作。

 

5.52  ComputingConcurrentHashMap<K,V>:继承 CustomConcurrentHashMap<K,V>,实现 Cache<K,V>

5.53  ForwardingConcurrentMap<K,V>:抽象类,继承 ForwardingMap<K,V>,实现 ConcurrentMap<K,V>。它的子类有 MapMaker.ComputingMapAdapter ComputingConcurrentHashMap.AdbstractSerializationProxy

5.54 ConcurrentHashMuiltiset<E>:继承 AbstractMultiset<E>

5.55  Constraints:是 Constraint的工厂类和工具类。

静态方法:

notNull():返回一个检查参数是否为空的 Constraint

          constraintCollection(Collection<E> collection, Constraint<? Super E> constraint):返回一个 Collection,该 Collection的添加新的元素的操作是被 constraint约束的,如果被插入的元素不满足 constraint约束则会抛出异常。

其它的静态方法与 constraintCollection类似,只是 Collection的类型不同。

 

5.56  ImmutableCollection<E>:抽象类,实现了 Collection<E>接口,是不可改变的容器,不支持增加、删除元素的操作。有四个内部类: EmptyImmutableCollection ArrayImmutableCollection SerializedForm Builder

5.57  ImmutableXXX EmptyImmutableXXX RegularImmutableXXX SingletonImmutableXXX ImmutableCollection的子类 (或子类的子类 ) EmptyXXX容器没有任何元素, SingletonXXX容器只有一个元素, RegularXXX有一个或多个元素。

5.58  EnumBiMap

5.59  EnumHashBiMap

5.60  EnumMultiset

5.61  ForwardingXXX:内部封装了相应的对象,它的所有方法都直接转到封装对象的方法。

5.62  StandardTable<R, C, V>:实现了 Table接口,内部封装了一个 Map<R, Map<C, V>> backingMap和一个工厂 factory

成员方法:

cellSet():返回由 Table的元素 Cell组成的 Set

row(R rowKey):返回行为 rowKey Map<C, V>

column(C columnKey):返回列为 columnKey Map<R, V>

rowKeySet():返回由 Table的行 Key组成的 Set

columnKeySet():返回由 Table的列 Key组成的 Set

values():返回由 Table的值组成的 Collection

rowMap():返回以行 Key为键的 Map

columnMap():返回以列 Key为键的 Map

5.63  HashBasedTable<R, C, V>:继承 StandardTable<R, C, V>

静态方法:

create(...):新建一个 HashBasedTable

 

以上。

 

 

你可能感兴趣的:(C++,c,算法,Google,C#)