我想通过使用 HashMap
来制作直方图,关键应该是延迟,值是这种延迟发生的次数。 I am doubting to use the HashMap
replace
or the HashMap
put
function if an already existing delay has an new occurence.我是这样做的:
int delay = (int) (loopcount-packetServed.getArrivalTime());
if(histogramType1.containsKey(delay)) {
histogramType1.replace(delay, histogramType1.get(delay) + 1);
} else {
histogramType1.put(delay, 1);
}
这个对吗?还是我应该使用两倍的 put 函数?
原文由 StudentX 发布,翻译遵循 CC BY-SA 4.0 许可协议
put
和replace
绝对没有区别,当存在所需键的当前映射时。来自replace
:这意味着如果给定键已经存在映射,则
put
和replace
将以相同的方式更新映射。两者都将返回与键关联的先前值。但是,如果该键没有映射,则replace
将是空操作(什么都不做),而put
仍将更新映射。从 Java 8 开始,请注意您可以只使用
这将照顾到每一个条件。来自
merge
:在这种情况下,如果条目不存在,我们将创建条目
delay -> 1
。如果确实存在,则通过将值递增 1 来更新它。