gpt4 book ai didi

java - 删除键后可以安全地迭代 hasmap 的值集合吗?

转载 作者:行者123 更新时间:2023-12-01 13:16:09 25 4
gpt4 key购买 nike

    HashMap<String, DBrow> datamap = new HashMap<String, DBrow>();
datamap.remove(key);

Collection<DBrow> values = datamap.values();

for(DBrow dbrow : values){
//is key's value removed from hashmap?
//ignore case where another key may have the same reference.
}

我不确定 HashMap 是否仅依赖于垃圾收集器最终删除从键映射的值,或者是否立即删除?我没有找到一种方法来保证删除 HashMap 中的 k/v 对,而只是删除键。

最佳答案

映射中的键和值链接在一起。 Map 只不过是 Map.EntrySet 而已。对象。 (参见.entrySet())。删除一个键实际上会删除整个条目。

.keySet().values() 方法只是构造临时 SetCollection >来自这些条目。

请注意,如果不是这种情况,您将无法保证键的迭代顺序与值的迭代顺序相同。这会很烦人,不是吗? ;)

关于java - 删除键后可以安全地迭代 hasmap 的值集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com