我有一个Set<String> set
,我坚持用java中的Neo4j Spring。能够按照添加元素的顺序从set
检索元素。集合不保留订单。我尝试使用Collection<String>/List<String>
,因为Lists
已经订购,但Neo4j不喜欢Collection
。还有什么可以用于订购存储?
编辑:按顺序,我的意思是插入订单。
答案 0 :(得分:4)
有一个特殊的Set实现,类TreeSet
保持集合中的元素排序,或者通过它们的自然顺序或者通过询问Comparator
它们应该如何排序。无论何时添加/删除元素,TreeSet都会重新排序集。
还有LinkedHashSet
实现,它根据插入顺序保留项目。
Collection是接口Set和List都扩展的接口。 (以及其他接口)
Collection不保证订购。他们关心的是添加和删除元素的可能性。 Set
不允许添加每个元素的多个副本。 Set接口本身不保证订购。 List
接口保证排序,但也允许同一元素的多个副本。
摘要:对于您的情况,请使用LinkedHashSet。
答案 1 :(得分:0)
List是有序集合(也称为序列)。该接口的用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。
List<String> list new ArrayList<String>();