commons-collections 之 MultiValue
作者:
躺在家里干活 | 来源:发表于
2019-10-08 09:48 被阅读0次作用:可以为一个key,指定一个value集合
注:MultiMap具有同样的功能,但是4.1之后推荐使用MultiValuedMap
- 内部实现:通过维护Collection的value值实现,参考AbstractMultiValuedMap
- 比如 Collection<V> valuesView; 实际上就是 Values extends AbstractCollection<V>
- 其它的实现也就像这样,使用继承实现自己独有的逻辑
public abstract class AbstractMultiValuedMap<K, V> implements MultiValuedMap<K, V> {
/** The values view */
private transient Collection<V> valuesView;
/** The EntryValues view */
private transient EntryValues entryValuesView;
/** The KeyMultiSet view */
private transient MultiSet<K> keysMultiSetView;
/** The AsMap view */
private transient AsMap asMapView;
/** The map used to store the data */
private transient Map<K, Collection<V>> map;
/**
* Inner class that provides the values view.
*/
private class Values extends AbstractCollection<V> {
@Override
public Iterator<V> iterator() {
final IteratorChain<V> chain = new IteratorChain<V>();
for (final K k : keySet()) {
chain.addIterator(new ValuesIterator(k));
}
return chain;
}
@Override
public int size() {
return AbstractMultiValuedMap.this.size();
}
@Override
public void clear() {
AbstractMultiValuedMap.this.clear();
}
}
我的个人博客,有空来坐坐
本文标题:commons-collections 之 MultiValue
本文链接:https://www.haomeiwen.com/subject/fotbyctx.html
网友评论