java是否返回多个比较器?
PriorityQueue<Student> pq = new PriorityQueue<(
Comparator.comparing(Student::getCgpa).reversed()
.thenComparing(Student::getFname)
.thenComparing(Student::getToken)
);
是否返回多个比较器?如果是,如何,, 因为这个构造函数只返回一个
你可以在下面搜索框中键入要查询的问题!
PriorityQueue<Student> pq = new PriorityQueue<(
Comparator.comparing(Student::getCgpa).reversed()
.thenComparing(Student::getFname)
.thenComparing(Student::getToken)
);
是否返回多个比较器?如果是,如何,, 因为这个构造函数只返回一个
# 1 楼答案
是否返回多个比较器
没有
如果是这样的话,为什么这个构造函数只返回一个呢
从^{} 文档中,给定的比较器与一个比较器中的前一个比较器相链接,该比较器可以使用多个规则对值进行排序
从代码中
新的比较器应用了这一点
0
(equals元素),则使用参数one返回其决策所以事实上,在递归测试中使用多个链接会产生结果
# 2 楼答案
“是否返回多个比较器?”-是的,在技术层面。链中除最后一个之外的每个
Comparator
都用于创建另一个Comparator
(通过调用reversed()
和thenComparing()
)。但只有一个作为参数传递给PriorityQueue
: