3 回答

TA貢獻1871條經(jīng)驗 獲得超8個贊
您可以使用TreeSet并提供比較器
TreeSet<myData> sorted = new TreeSet<>(Comparator.comparing(MyData::expDtTm));
sorted.addAll(dataLocations);
或按照CollectorJavadocs類中的描述為TreeSet以下內(nèi)容創(chuàng)建您自己的收集器:
Collector<Widget, ?, TreeSet<Widget>> intoSet =
Collector.of(
TreeSet::new,
TreeSet::add,
(left, right) -> { left.addAll(right); return left; }
);

TA貢獻1993條經(jīng)驗 獲得超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]
添加回答
舉報