gpt4 book ai didi

java - 每次调用 HashMap.entrySet() 都会实例化并填充一个新集合吗?

转载 作者:行者123 更新时间:2023-11-30 04:03:28 25 4
gpt4 key购买 nike

我需要在 OpenGL 循环的每一帧上迭代一些 HashMap。我这样做是这样的:

for (Map.Entry<MyKey, MyValue> entry : myMap.entrySet(){...}

我关心的是对 entrySet() 的调用是否每次调用时都会实例化并填充一个全新的 Map.Entry 对象,因为如果是这样,GC 会比我更忙想要在 OpenGL 中制作动画时。我的直觉告诉我不行,因为 HashMap 文档说你可以使用返回的条目集直接修改 HashMap,但我不知道如何确定。

我还想了解其他 Map 实现,例如 Hashtable、TreeMap 和 LinkedHashMap。

最佳答案

查看来源后,答案是否定的。它在第一次调用 entrySet() 时延迟实例化条目集,然后在每次后续调用时返回对同一对象的引用。

LinkedHashMap、Hashtable 和 TreeMap 也是如此。

关于java - 每次调用 HashMap.entrySet() 都会实例化并填充一个新集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395630/

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