gpt4 book ai didi

java - 带有 Comparator 参数的 TreeSet 构造函数

转载 作者:太空狗 更新时间:2023-10-29 22:43:31 25 4
gpt4 key购买 nike

Java’s documentation for its class TreeSet其中一个构造函数显示为具有以下 header :

TreeSet(Comparator<? super E> c)

有人可以帮助解释为什么 TreeSet 有一个构造函数,它以比较器对象作为参数吗?我不知道为什么要这样做。

最佳答案

以上所有答案都是正确的,但我想补充一点,自定义比较器除了会产生不同的排序外,还会以不同的方式过滤值。

由于 Set 的值是单义的,如果自定义 Comparator 返回两个值相同,则只有其中一个会出现在 Set 中:

    Set<String> s = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.trim().compareTo(s2.trim());
}
});

s.add("1");
s.add(" 1");
s.add("2 ");
s.add("2");
s.add(" 2 ");

Arrays.toString(s.toArray()); // [ "1", "2 "]

关于java - 带有 Comparator<?> 参数的 TreeSet 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com