我有一个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);
答案 0 :(得分:13)
list
.stream()
.distinct()
.sorted()
.collect(Collectors.toList());
答案 1 :(得分:11)
使用TreeSet
:
Set<String> sortedAndDistinct = new TreeSet<>(list);
根据定义,Set
仅允许不同的值。 TreeSet
会根据其自然顺序对值进行排序(如果在创建时未提供Comparator
的话)。
对于String
,自然顺序是按字典顺序排列的,换言之,a
小于z
,或者在您的情况下,100-200
小于500-600