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 次 |
| 最近记录: |