java如何使用HashMap<String,List<SomeObject>>
假设我有一个Map<String,List<SomeObject>> someMap;
,它的size()
范围从1到100(这个size()
在程序期间保持不变,键也保持不变!)。然而,在我的程序中,与键相关的值不断变化
目前的设置方式是,每次我需要更改someMap
的值(请注意,每当我需要更改一个键对应的值时,碰巧我也需要更改每个键对应的值),我都会用new HashMap<String,List<SomeObject>>()
覆盖旧映射,然后someMap.put(someString,listOfSomeObjects)
{100
次
我想知道如何将该程序产生的垃圾量降至最低?我知道我有几个选择;我可以做我目前正在做的事情,或者我可以依赖clear功能(要么在HashMap
级别应用,要么重新put
将List<SomeObject>
实例放入其中,要么在valueSet()
级别应用
上下文是一个实时系统,停止世界暂停是不可取的(但我也不想为此购买特殊的JVM)
# 1 楼答案
这里有很多变量,如果没有适当的分析,很难给出一个明确的答案,但总的来说,我会像你一样继续下去,因为:
在分析应用程序时,你应该尝试对年轻一代使用不同的GC算法。我很想看看
ParNew
,虽然从技术上来说它可以阻止世界,但通常速度很快,这是无关紧要的