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