【发布时间】:2014-04-09 22:33:06
【问题描述】:
SortedMap.values() 返回带有迭代器的集合,它按升序返回值。 我需要这个集合的快速获取方法(按索引)。我的收藏是不可修改的。
我的想法:创建实现List接口的类,并保持对集合和列表的引用进行迭代。 当我们收到 get(int i):
1) if (i
2) if (i > maxI) 然后我们通过集合迭代到 i,并将元素复制到列表值。(仅复制引用)。 我们将有 O(1) 摊销。
对于这个问题是否有任何现有的实现或解决方案?
【问题讨论】:
-
你想通过做这一切来达到什么目的?使用索引访问 Map.values() 的元素本身没有任何用途。您没有任何关于第 i 个索引的信息。如果你真的只想随机访问元素 - 然后简单地将值直接复制到列表中。
-
@Bhaskar 这是真的,虽然他们说这是一个 SortedMap,所以也许他们确实有这方面的信息。