2013-12-09 43 views
0

列表接口允許我們在索引處使用get()方法獲取對象。獲取並設置集合中的方法

我們怎樣才能獲得特定索引處的對象設置界面像LinkedHashSet

+1

同樣的問題在這個話題[這裏]討論[1] [1]:http://stackoverflow.com/questions/769731/why-doesnt-java-util-set-have -getint-index –

+0

此網站搜索訂單沒有幫助您輕鬆找到它。 thnx鏈接 – user3041058

回答

1

簡而言之,這是不可能的。但是,您可以獲得一個數組,其中包含您正在使用的Set中的所有數據,然後通過索引訪問它。這與由Set提供的與List不同的抽象有關。

Set僅僅是一個不允許重複的集合(沒有關於排序的評論),但List是一個暗示排序的集合,所以每個值都有一個關聯的索引。

+0

'LinkedList'事實上有一個順序,[*元素被插入集合的順序(插入順序)*](http://docs.oracle.com/javase/6/docs/api /java/util/LinkedHashSet.html)。但它不提供直接訪問器。不過,您的建議,轉換爲陣列是正確的答案。 –

+0

@Moritz,你是對的,但LinkedHashSet不是一個LinkedList,它包含一個LinkedList,所以它不會向用戶公開這個特性:)這是我的思路。 – prmottajr

+0

@prmottajr注意術語:它不包含「LinkedList」,而是通用術語中的「鏈接列表」。實際上'LinkedHashSet'基於'LinkedHashMap',而不是'LinkedList'。 – Mik378

6

Set無序。沒有索引的概念。

因此,如果你想獲得一個特定的元素,你只要找到你想要的元素,就不得不循環它並中斷。

1

你不能。由於沒有訂購,所以沒有索引訪問權限。