我很感兴趣如何快速将布尔值更改为此哈希图:
HashMap<String, Boolean> selectedIds = new HashMap<>();
我想很快将布尔值全部替换为真的。我怎么能做到这一点?
我很感兴趣如何快速将布尔值更改为此哈希图:
HashMap<String, Boolean> selectedIds = new HashMap<>();
我想很快将布尔值全部替换为真的。我怎么能做到这一点?
最快的方法是这样的:
for (Map.Entry<String, Boolean> entry : selectedIds.entrySet()) {
entry.setValue(true);
}
这段代码避免了任何查找,因为它遍历整个地图的条目并直接设置它们的值。
请注意,无论何时HashMap.put()
调用,都会在内部进行密钥查找Hashtable
。虽然代码经过高度优化,但仍需要计算和比较哈希码,然后使用算法最终找到条目(如果存在)。这都是“工作”,会消耗 CPU 周期。
Java 8replaceAll()
为此目的引入了一种新方法,使所需的代码更加简单:
selectedIds.replaceAll((k, v) -> true);
这将遍历您的地图并将所有旧值替换为每个键的真实值。HashMap put 方法
for(String s : selectedIds.keySet()) {
selectedIds.put(s, true);
}