我有一個非常大的谷歌Multimap<String,String>
,並正在尋找方法來減少內存使用量。在所有的例子我能找到的人都在做這樣的事情:Java Multimap <String,String>與Trove
Multimaps.newSetMultimap(
TDecorators.wrap(new TIntObjectHashMap<Collection<Integer>>()),
new Supplier<Set<Integer>>() {
public Set<Integer> get() {
return TDecorators.wrap(new TIntHashSet());
}
});
該工程爲Multimap <Integer,Integer>
,是有可能使用特羅韋包裝一個<String,String>
?
因爲任何人對未來感興趣,我會用 http://code.google.com/p/jdbm2/ 將散列圖寫入文件系統。
什麼是* google Multimap *?你的意思是番石榴的'Multimap'? –
2013-03-22 20:18:12
TIntObjectHashMap似乎需要int鍵,但它看起來沒有任何要求爲整數的值。你可以使用'Multimap'鍵入['String.hashCode()'](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html #hashCode()),而不是? –
femtoRgon
2013-03-22 20:26:14
你能告訴我們更多關於你的應用程序嗎?不可變集合,包括multimaps,比可變集合具有更高的內存效率。或者,根據你有的字符串的種類,它可能會例如將它們存儲在UTF-8'byte []'中更有效率。除了這兩個建議之外,除了磁盤上的數據庫之外,不可能有任何其他選項。 – 2013-03-22 20:36:02