HashMap
具有恒定的访问时间但不允许重复。ArrayList
允许重复但没有恒定的访问时间。
java中有没有一种数据结构允许访问时间不变并且允许重复?
我知道我可以创建自己的允许重复的< code>HashMap,但是我想使用一个已经存在的数据结构。
提前感谢您。
数组列表#获取
和数组列表#集
实际上是常量时间,以及其他一些函数。阅读文档,类文档的第二段:
大小、是空的、获取的、设置的、迭代器和列表迭代器操作在恒定时间内运行
您的下一个选项是多地图。这是一个以密钥/集合方式存储项目的映射。集合保存值,因此单个键映射到多个值。您可以查看Apache Common的多地图
,看看他们是否有适合您的实现。或者,您始终可以创建自己的集合,只需将集合定义为值:
Map<String, List<String>> multimap;
您可以使用Eclipse集合中的Bag、Google Guava中的Multiset或Apache Commons集合中的Bag。Bag
基本上是Map
所有三个库都有Multimaps。Multimap
基本上是Map
注意:我是Eclipse集合的提交者