我有一個數據結構,目前我使用的是一個ArrayList
。我意識到,在這個結構中,我不希望有任何重複出現。我的第一個想法是使用某種形式的集合,但是順序也很重要。在搜索了一下Google搜索文檔後,我發現LinkedHashSet
幾乎完成了這項工作。不幸的是,維持秩序的主要原因之一是因爲我正在使用ArrayList的get(int index)
方法進行隨機訪問,我看不到任何解決方法。設置和列表接口的Java組合
更簡潔 - 我需要一個保存順序並允許隨機訪問的集合。到目前爲止,我所看到的這些類都沒有提供這種功能。有人知道有這樣的課程,還是我必須自己做?如果是後一種情況,那麼在創建人們都知道的這樣一個結構時是否有任何缺陷?
(或者,檢查和刪除重複的快速和容易的方式形成一個ArrayList或類似的結構就足夠了)
編輯:爲清楚起見,它是元素被添加到這一點很重要列表中的順序,他們沒怎麼彼此比較
使用TreeMap。 –
你可以在你的類型和整數之間使用雙向映射。 http://commons.apache.org/collections/api-3.1/org/apache/commons/collections/BidiMap.html這樣,您可以確保唯一性並快速查找。不過,您將需要一個全局計數器用於新的整數鍵。 –
@Maurício:這不行。地圖允許重複的值。限制僅限於鑰匙。 – BalusC