3 回答

TA贡献1871条经验 获得超8个赞
您可以使用TreeSet并提供比较器
TreeSet<myData> sorted = new TreeSet<>(Comparator.comparing(MyData::expDtTm));
sorted.addAll(dataLocations);
或按照CollectorJavadocs类中的描述为TreeSet以下内容创建您自己的收集器:
Collector<Widget, ?, TreeSet<Widget>> intoSet =
Collector.of(
TreeSet::new,
TreeSet::add,
(left, right) -> { left.addAll(right); return left; }
);

TA贡献1993条经验 获得超6个赞
您可以尝试以下方法:
public class Example {
public static void main(String[] args) {
Comparator<String> stringComparator =
Comparator.comparing((String x) -> x);
Supplier<TreeSet<String>> supplier =
() -> new TreeSet<>(stringComparator);
Set<String> set = new HashSet<>(Arrays.asList("1", "3", "7", "2", "9", "4"));
TreeSet<String> treeSet = set.stream()
.collect(Collectors.toCollection(supplier));
System.out.println(treeSet);
}
}
将String类替换为您的String类。
输出
[1, 2, 3, 4, 7, 9]
添加回答
举报