当前位置: 首页 > 知识库问答 >
问题:

一种java数据结构,具有恒定的访问时间并允许重复

微生令雪
2023-03-14

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

java中有没有一种数据结构允许访问时间不变并且允许重复?

我知道我可以创建自己的允许重复的< code>HashMap,但是我想使用一个已经存在的数据结构。

提前感谢您。

共有2个答案

凤昊东
2023-03-14

您可以使用Eclipse集合中的Bag、Google Guava中的Multiset或Apache Commons集合中的Bag。Bag基本上是Map

所有三个库都有Multimaps。Multimap基本上是Map

注意:我是Eclipse集合的提交者

吴高畅
2023-03-14

数组列表#获取数组列表#集实际上是常量时间,以及其他一些函数。阅读文档,类文档的第二段:

大小、是空的、获取的、设置的、迭代器和列表迭代器操作在恒定时间内运行

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

Map<String, List<String>> multimap;
 类似资料:
  • 我需要使用一个可以用C实现的数据结构,它可以在固定时间内执行基本操作,比如查找、插入和删除。一、 然而,也需要能够在恒定时间内找到最大值。 这个数据结构可能应该被排序以找到最大值,我已经研究了红黑树,但是它们有对数时间运算。

  • 我正在研究一个编码面试,发现了一个问题,从时间复杂性方面来说,它将从像这样的数据结构中受益匪浅,但它允许通过索引获取元素。类似地,允许插入的在保持自然秩序的同时也会起作用。Java中有这样的数据结构吗?

  • 我有以下情况: 只能扩展的数据结构(我只能在尾部添加内容) 我需要能够跟踪我已经看到的元素(我有一个索引,理想情况下我希望能够从这个特定元素开始再次遍历列表) 我希望读取永远不会阻塞,并且添加的新元素只会锁定队列的尾部而不是整个队列 这是一个由多个线程大量修改的结构。 最佳的数据结构是什么? ArrayList.如果能够直接访问使用索引看到的最后一个元素,这将是理想的,但它会导致并发修改异常。我可

  • 这里是Java/C开发者。试图学习C语言,但我对数组的内存分配感到困惑。 这里发生了什么? 输出 怎么会这样?为什么我不能越界异常或程序崩溃?我能无限地做到这一点吗?在这种情况下,我的数组长度是多少?如果我的数组允许我将值放在界限之外,那么通过分配内存有什么意义?这对我来说毫无意义。

  • 登录:1未能加载http://127.0.0.1:8000/oauth/token:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许访问源'http://localhost:4200'。 我听说应该用一个叫:

  • 问题内容: 我看到以下错误: 使用此代码: 是什么原因引起的,如何解决? 问题答案: 在当前域之外发出ajax请求时,Javascript是受限制的。 例1:您的域名为example.com,并且您想向test.com提出请求=>您不能。 例2:您的域名是example.com,并且您想向inner.example.com发送请求,但是您不能。 例3:您的域名为example.com:80,并且您