Comparator 比较器
【 美 /ˈkɑːmpəˌreɪtər; kəmˈpærətər/】 比较器
Compares its two arguments (o1,o2)
for order,Returns a integer。
1、 negative integer, first argument is less than the second → <0 o1<o2
2、 zero, first argument i, equal to than the second → =0 o1=o2
3、 positive integer ,first argument is greater than the second → >0 o1>o2
文章来源地址https://www.toymoban.com/news/detail-608109.html
顺序 决定 升序降序
顺序相同就升序
students.sort((o1, o2) -> o1.getScore() - o2.getScore());
顺序相反就降序
students.sort((o1, o2) -> o2.getScore() - o1.getScore());
接口定义
@FunctionalInterface
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
....
}
接口使用
传统方式
Comparator<Integer> consumer = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
};
List<Integer> list = List.of(1, 6, 3, 5, 6, 3, 2, 8);
List<Integer> collect = list.stream().sorted(consumer).toList(); // [1, 2, 3, 3, 5, 6, 6, 8]
lambda表达式
List<Integer> list1 = List.of(1, 6, 3, 5, 6, 3, 2, 8);
List<Integer> integers = list1.stream().sorted((o1, o2) -> o2 - o1).toList(); // [8, 6, 6, 5, 3, 3, 2, 1]
文章来源:https://www.toymoban.com/news/detail-608109.html
到了这里,关于内置函数式接口-Comparator的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!