java - 具有恒定访问时间并允许重复的 Java 数据结构

标签 java hashmap duplicates constant-time

HashMap 具有恒定的访问时间,但不允许重复。 ArrayList 允许重复,但没有恒定的访问时间。

java中是否有一种数据结构允许恒定的访问时间并允许重复?

我知道我可以制作自己的允许重复的HashMap,但我想使用已经存在的数据结构。

提前谢谢您。

最佳答案

ArrayList#getArrayList#set 实际上是常数时间,还有一些其他函数。阅读documentation ,类文档的第二段:

The size, isEmpty, get, set, iterator, and listIterator operations run in constant time

您的下一个选择是多重 map 。这是一个以键/集合方式存储项目的 map 。该集合保存值,因此单个键映射到多个值。您可以查看 Apache Common 的 MultiMap看看他们是否有适合您的实现方案。或者,您始终可以创建自己的集合,只需将集合定义为值即可:

Map<String, List<String>> multimap;

关于java - 具有恒定访问时间并允许重复的 Java 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29187292/

相关文章:

performance - 链式哈希表中成功搜索的平均成本

java - 如何通过引用 Java 中包含数组的 HashMap 来向数组添加值?

algorithm - 如何为 HashSet/HashMap 实现哈希函数

python - 删除重复值并对相应的列值求和

java - 将字符串数组转换为整数数组

java - 如何在 JTextPane 上添加不同颜色的文本

java - 在java中的方法参数中传递空引用?

java - 如何为生成的 DAO 查找创建 RecordN

java - 如何使用Java查找数组中不同重复值的数量

php删除数组中的重复项