[英]How to effectively replace Java HashMap with boolean values
我很感兴趣如何快速将布尔值更改为此hashmap:
HashMap<String, Boolean> selectedIds = new HashMap<>();
我想非常快地将布尔值全部替换为true。 我怎么能这样做?
最快的方法是:
for (Map.Entry<String, Boolean> entry : selectedIds.entrySet()) {
entry.setValue(true);
}
此代码可以避免任何查找,因为它会迭代整个映射的条目并直接设置它们的值。
请注意,每当调用HashMap.put()
时,都会在内部Hashtable
进行键查找。 虽然代码是高度优化的,但仍需要计算和比较哈希码的工作,然后使用算法最终找到条目(如果存在)。 这都是“工作”,并消耗CPU周期。
Java 8为此目的引入了一个新方法replaceAll()
,使得所需的代码更简单:
selectedIds.replaceAll((k, v) -> true);
这将迭代您的地图并将每个键的所有旧值替换为true值。 HashMap put方法
for(String s : selectedIds.keySet()) {
selectedIds.put(s, true);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.