SortedMap.values()使用迭代器返回集合,迭代器按升序返回值。 我需要一个快速get方法(按索引)到这个集合。我的收藏是不可修改的。是否有可能获得SortedMap.values()的列表接口?
我的想法:创建类,实现列表接口,并保持参考集合和列表迭代。当我们收到get(int i)时:
1)if(i < = maxI)然后我们返回列表中的值。 2)if(i> maxI)然后我们通过集合迭代到i,并将元素复制到列表值(仅复制引用)。 我们将有O(1)分期付款。
是否有任何现有的实现或解决方案?
通过这样做你想达到什么目的?使用索引访问Map.values()的元素本身没有任何用途。你没有任何关于第i个索引处的信息。如果你真的只想随机访问元素 - 那么简单地直接将值复制到列表中。 – Bhaskar
@Bhaskar确实如此,虽然他们说它是一个SortedMap,所以也许他们有这方面的信息。 – Radiodef