我需要什么:
- 最快的放置/删除,这个被经常使用。
- 迭代,也经常使用。
- 持有一个物体,例如玩家。删除应该是 o(1) 所以也许是 hashmap?
- 没有重复的键
- 从不使用直接 get(),主要是迭代检索数据。`
我不担心内存,我只是想要尽可能快的速度,即使这是以内存为代价。
最佳答案
对于迭代来说,没有什么比普通的旧数组更快的了。条目按顺序保存在内存中,因此 JVM 只需将一个条目的长度与其地址相加即可到达下一个条目。
与映射或列表相比,数组通常处理起来有点麻烦(例如:没有字典式查找、固定长度)。但是,在您的情况下,我认为使用一维或二维数组是有意义的,因为数组的长度不会改变并且不需要字典式查找。
关于Java:对于这种情况我应该使用什么集合类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987364/