Java:对于这种情况我应该使用什么集合类型?

标签 java performance collections hashmap

我需要什么:

  • 最快的放置/删除,这个被经常使用。
  • 迭代,也经常使用。
  • 持有一个物体,例如玩家。删除应该是 o(1) 所以也许是 hashmap?
  • 没有重复的键
  • 从不使用直接 get(),主要是迭代检索数据。`

我不担心内存,我只是想要尽可能快的速度,即使这是以内存为代价。

最佳答案

对于迭代来说,没有什么比普通的旧数组更快的了。条目按顺序保存在内存中,因此 JVM 只需将一个条目的长度与其地址相加即可到达下一个条目。

与映射或列表相比,数组通常处理起来有点麻烦(例如:没有字典式查找、固定长度)。但是,在您的情况下,我认为使用一维或二维数组是有意义的,因为数组的长度不会改变并且不需要字典式查找。

关于Java:对于这种情况我应该使用什么集合类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987364/

相关文章:

c# - 比较两个列表中对象的 id,并获取包含 id 出现在两个列表中的对象的对象列表

hibernate - hibernate -类级别@Where对该类的集合不强制执行注解?

java - 自定义卡片 View 形状

java - 在 Java 程序中创建和销毁多个 AWT-Shutdown 和 AWT-EventQueue 线程

c# - 性能问题 : StringCollection vs List<String>

performance - FK 上的联接是否比没有 FK 的联接更快?

java - 在 GlassFish Server 上的指定域中部署 Java EE Web 应用程序

java - Spring Boot中的Mockito不模拟对象

php - 选择有限数量的不同行

java - 如何按集合的值流式传输 map ?