【发布时间】:2014-01-28 02:17:46
【问题描述】:
我需要在 OpenGL 循环的每一帧上迭代一些 HashMap。我是这样做的:
for (Map.Entry<MyKey, MyValue> entry : myMap.entrySet(){...}
我担心的是,每次调用entrySet() 时是否会实际实例化并填充一个全新的 Map.Entry 对象,因为如果是这样,在 OpenGL 中制作动画时 GC 会比我想要的更忙.我的直觉说不,因为 HashMap 文档说您可以使用返回的条目集直接修改 HashMap,但我不知道如何确定。
我还想了解其他 Map 实现,例如 Hashtable、TreeMap 和 LinkedHashMap。
【问题讨论】:
-
JDK源码为公开资料,查查即可。
-
三年过去了,我还不知道!
-
另外,您的 JDK 安装应该包含一个
src.zip以及您链接到 IDE 的所有源代码。 -
奇怪的是,有两个人认为这应该因为太宽泛而被关闭。答案要么是,要么不是。不能比这更广泛。保持开放可能对其他人有所帮助。如果有人曾经在 SO 上问过这个问题,那我可以节省 15 分钟的时间来浏览和理解 HashMap 源代码。
标签: java