chr*_*l89 3 java multimap trove4j
我有一个非常大的谷歌,Multimap<String,String>并正在研究减少内存使用的方法.在所有的例子中,我发现人们正在做的事情如下:
Multimaps.newSetMultimap(
TDecorators.wrap(new TIntObjectHashMap<Collection<Integer>>()),
new Supplier<Set<Integer>>() {
public Set<Integer> get() {
return TDecorators.wrap(new TIntHashSet());
}
});
Run Code Online (Sandbox Code Playgroud)
适用于a Multimap <Integer,Integer>,是否可以使用Trove来包装<String,String>?
任何人都对未来感兴趣我使用 http://code.google.com/p/jdbm2/ 将哈希映射写入文件系统.
Guava的Multimaps支持标准JDK集合,这些集合未针对内存使用进行优化.例如,ArrayListMultimap<K, V>由支持HashMap<K, ArrayList<V>>和HashMultimap<K, V>支持HashMap<K, HashSet<V>>.
Eclipse的集合(前身为GS集合)已经屈德宁通过自己的容器类型的支持,UnifiedMap和UnifiedSet.UnifiedMap使用一半的内存HashMap并UnifiedSet使用四分之一的内存HashSet.您将看到的内存优势将取决于您是使用a FastListMultimap还是a UnifiedSetMultimap.
这里有更详细的内存比较.
注意:我是Eclipse Collections的提交者.