Ali*_*nik 3 java collections performance dictionary hashmap
我有一张这样的地图,其中有数百万个条目:
private final Map<String, SomeItem> tops = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
我需要获取值列表,这可以通过调用 java.util.Map values()
方法来完成。
每次调用方法时都会Collection
创建值values()
,还是从性能角度预先计算值?
由于我Map
有几百万个元素,我不想每次values()
调用时都创建新的列表对象。
Map.values()
下面是in的复制实现java.util.HashMap
:
public Collection<V> values() {
Collection<V> vs = values;
if (vs == null) {
vs = new Values();
values = vs;
}
return vs;
}
Run Code Online (Sandbox Code Playgroud)
这清楚地表明,除非必要,否则不会创建值集合。因此,不应该有因调用而造成的额外开销values()
归档时间: |
|
查看次数: |
2268 次 |
最近记录: |