2014-10-16 54 views
0

我們有一個HashMap像下面,維護列表大小一個HashMap

HashMap<String, ArrayList<Integer>> hm = new HashMap<String, ArrayList<Integer>>(); 

1)當過關鍵重複的值(整數)已被添加到該ArrayList。 2)如果arrayList大小的大小超過閾值大小,比如500,則從hashMap中除去Kay:Value。

除了在每次放入地圖之前檢查arrayList大小的常用方法之外,還有更好的方法嗎?請指教。

+0

SANKET嗨, 我的想法,到目前爲止,是蠻力,等確認的ArrayList的大小每前放和刪除鍵值:從HashMap的值,如果規模已經超過閾值,這裏是500 – Sharath 2014-10-16 12:07:05

回答

1

考慮使用番石榴的ListMultimap

ListMultimap<String, Integer> map = ArrayListMultimap.create(); 

for(...) { 
    ... 
    map.put(key, value); 
    if (map.get(key).size() > 500) 
     map.removeAll(key); 
} 
+0

謝謝Leventov ..我想的也是一樣。想知道如果有任何優化的方式。 – Sharath 2014-10-20 07:31:25