Java SortedCollection接口?
我正在寻找一个接口来描述元素的契约顺序,这个接口很重要,但没有别的 我可以使用Java SortedCollection接口?,java,collections,Java,Collections,我正在寻找一个接口来描述元素的契约顺序,这个接口很重要,但没有别的 我可以使用List,但是SortedSet没有实现List。我可以使用Iterable,但是HashSet在未排序时实现了Iterable 您有什么建议?没有这样的界面。ArrayList和TreeSet的常用接口是Collection和Iterable,但这些接口也由HashSet实现。您将如何使用这样的接口?什么是“元素的顺序很重要”?好吧,列表背后的想法是快速访问两端和快速遍历。排序在列表中是一个缓慢的操作。同时,集合是一
List
,但是SortedSet
没有实现List
。我可以使用Iterable
,但是HashSet
在未排序时实现了Iterable
您有什么建议?没有这样的界面。
ArrayList
和TreeSet
的常用接口是Collection
和Iterable
,但这些接口也由HashSet
实现。您将如何使用这样的接口?什么是“元素的顺序很重要”?好吧,列表背后的想法是快速访问两端和快速遍历。排序在列表中是一个缓慢的操作。同时,集合
是一个对任何领域都没有特别优化的包。如果需要始终对其进行排序,那么TreeSet
就是适合您的类,您只需使用它的迭代器即可。或者,您可以使用java.util.Collections.sort(list,Comparator)
@PaulBoddington对任何可修改的列表进行排序。我将使用这样的接口来描述合同。我需要元素的顺序,本来不需要比较器,但它似乎没有其他选项。实际上,List
保留了插入元素的顺序,还可以使用Collections轻松排序。sort(…)
方法,如@coladict所述。如果您需要一个只保留插入项目顺序的集合,可以使用LinkedHashSet
。它实现Iterable
,并保留插入顺序。但它是一个特定的实现,而不是一个接口。