HashMap
具有恒定的访问时间,但不允许重复。 ArrayList 允许重复,但没有恒定的访问时间。
java中是否有一种数据结构允许恒定的访问时间并允许重复?
我知道我可以制作自己的允许重复的HashMap
,但我想使用已经存在的数据结构。
提前谢谢您。
最佳答案
ArrayList#get
和 ArrayList#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/