use*_*928 6 java initialization hashmap
我很感兴趣如何快速将布尔值更改为此hashmap:
HashMap<String, Boolean> selectedIds = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
我想非常快地将布尔值全部替换为true.我怎么能这样做?
Boh*_*ian 11
该最快的方法是这样的:
for (Map.Entry<String, Boolean> entry : selectedIds.entrySet()) {
entry.setValue(true);
}
Run Code Online (Sandbox Code Playgroud)
此代码可以避免任何查找,因为它会迭代整个映射的条目并直接设置它们的值.
请注意,无论何时HashMap.put()调用,都会在内部发生键查找Hashtable.虽然代码是高度优化的,但仍需要计算和比较哈希码的工作,然后使用算法最终找到条目(如果存在).这都是"工作",并消耗CPU周期.
Java 8 replaceAll()为此目的引入了一种新方法,使得所需的代码更简单:
selectedIds.replaceAll((k, v) -> true);
Run Code Online (Sandbox Code Playgroud)
这将迭代您的地图并将每个键的所有旧值替换为true值.HashMap put方法
for(String s : selectedIds.keySet()) {
selectedIds.put(s, true);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4213 次 |
| 最近记录: |