2013-09-26 92 views
1

我有一個Set<String> set,我堅持使用java中的Neo4j Spring。爲了能夠按照向元素添加元素的順序從set中檢索元素。套件不保留訂單。我曾嘗試使用Collection<String>/List<String>,因爲Lists s已經訂購,但Neo4j不喜歡Collection。還有什麼可以用於有序存儲?保留Neo4j數據成員中元素的插入順序

編輯:按順序,我的意思是插入順序。

回答

4

Set有一個特殊的實現,類TreeSet保持集合中的元素排序,或者通過自然排序或者通過詢問Comparator如何排序。無論何時添加/移除元素,TreeSets都會重新排序集合。

還有LinkedHashSet實現,它根據插入順序保留項目。

Collection是接口Set和List都擴展的接口。 (以及其他接口)

集合不保證排序。他們所關心的是添加和刪除元素的可能性。 Set不允許添加每個元素的多個副本。 Set接口本身不保證排序。 List接口保證排序,但也允許相同元素的多個副本。

摘要:爲了您的情況,請使用LinkedHashSet。

+0

謝謝,但是Neo4j的不會讓我堅持從'Collection' –

+0

@StephenD什麼'Set'是Collection'的'子接口。所以所有集合也都是集合。 –

+0

....很好玩 –

0

列表是一個有序集合(也稱爲序列)。該接口的用戶可以精確控制每個元素插入到列表中的哪個位置。用戶可以通過整數索引(列表中的位置)訪問元素,並搜索列表中的元素。

List<String> list new ArrayList<String>(); 
+1

在編輯問題時,它表示他已經嘗試了這一點。 –

相關問題