2014-10-16 55 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