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