对LinkedHashSet进行排序
我想知道是否可以对LinkedHashSet进行排序。 我试过这个声明
Collections.sort((List paragraph);
但是,这只会抛出一个错误,无法将其转换为List。 有没有办法做到这一点,还是应该使用其他数据结构?
如果您关心基于比较的排序(例如,排序顺序),则应使用诸如TreeSet
或ConcurrentSkipListSet
类的SortedSet
。
LinkedHashSet
根据广告订单保留订单 。
如果你真的想使用Collections.sort
你可以通过实际构建一个List
将LHS转换为List(虽然问题没有告诉我们paragraph
的类型,所以我假设它是String
)
List listParagraph = new ArrayList (paragraph); Collections.sort(listParagraph)
但这可能不是最好的方法。
Collections.sort不适用于Set
s,仅适用于List
s。 如果需要对Set
已有的数据进行排序,可能需要先将它们添加到List
。
您可以将LinkedHashSet对象(linkedHashSet)添加到TreeSet,它将被排序。
TreeSet treeSet = new TreeSet (); treeSet.addAll(linkedHashSet);
treeSet是有序集。
请注意,您需要使这些T类型具有可比性(通过实现Comparator接口)。