有没有办法清除所有值,同时保留键?
我的HashMap
是<String,String>
,我应该循环并用value
替换每个null
吗?有没有更好的方法呢?
答案 0 :(得分:7)
如果您使用的是Java 8+,则可以使用Map#replaceAll
:
map.replaceAll((k, v) -> null);
如果没有,循环Entry
可能是最简单的方法。在上面的链接中,Map#replaceAll
的默认实现等同于:
for (Map.Entry<K, V> entry : map.entrySet())
entry.setValue(function.apply(entry.getKey(), entry.getValue()));
其中function是参数,所以你可以这样做:
for (Map.Entry<K, V> entry : map.entrySet()) {
entry.setValue(null);
}
答案 1 :(得分:3)
我会保持简单,并在列表或集合中收集标题,然后通过循环遍历列表而不是尝试回收相同的地图,在每行创建一个新的HashMap。
答案 2 :(得分:2)
for(String key : map.keySet()) {
map.put(key, null);
}