gpt4 book ai didi

java - 如何让耳机正常工作?

转载 作者:行者123 更新时间:2023-11-30 10:51:52 25 4
gpt4 key购买 nike

我有这门课:

public class Person implements{
private String name;
private int height;
...
}

人是按高度来比较的。期待两个不同的人可以拥有相同高度的情况似乎是合理的。这就是我写这个比较器的原因:

public static class Compar implements Comparator<Person> {
@Override
public int compare(Person o1, Person o2) {
int r = Integer.compare(o1.height, o2.height);
return r == 0 ? o1.name.compareTo(o2.name) : r;
}
}

这是我的主要内容:

public static void main(String[] args){
TreeSet<Person> ps = new TreeSet<>(new Compar());
ps.add(new Person("Ann", 150));
ps.add(new Person("Jane", 150));
ps.add(new Person("John", 180));
System.out.println(ps);
}

我得到这个结果:Ann, height = 150 Jane, height = 150 John, height = 180。但是当我想使用方法 headSet 时,我期望下一个结果:Ann, height = 150简,高度=150,tr2什么都没有出现。

TreeSet<Person> tr2 = new TreeSet<Person>(new Compar());
Person p = new Person("",150);
tr2 = (TreeSet<Person>) ps.headSet(p,true);

我该如何解决这个问题?

最佳答案

是的,tr2 中不会出现任何内容,因为 .headSet() 返回该集合中元素严格较少的部分的 View 比 p(独占)。

所有其他 Person 对象都等于/高于 p(150、150、180)。如果它们相等,则通过比较器通过它们的 name 字段比较它们(因为您将 true 作为第二个参数传递给 .headSet()。由于 pname 是空字符串,因此它小于其他名称,因此不包括在内。

这方面的文档是 here ,我想你正在寻找 .tailSet()相反。

关于java - 如何让耳机正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576768/

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