我有一个ArrayList
的String
类型,其值包含range = {300-400, 100-200, 500-600, 300-400, 500-600}
我需要对其进行排序并删除其中的重复项。
最终输出应该是range = {100-200,300-400,500-600}
。
我已经尝试使用HashSet删除重复项但不保留排序顺序。
Set<String> ol = new HashSet<String>(mylist);
list
.stream()
.distinct()
.sorted()
.collect(Collectors.toList());
使用TreeSet
:
Set<String> sortedAndDistinct = new TreeSet<>(list);
根据定义,Set
仅允许不同的值。并且TreeSet
根据它们的自然顺序对值进行排序(如果在创建时没有提供Comparator
)。
对于String
s,自然顺序是词典的,换句话说,a
小于z
或在你的情况下100-200
小于500-600