内置函数式接口-Comparator

这篇具有很好参考价值的文章主要介绍了内置函数式接口-Comparator。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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]

到了这里,关于内置函数式接口-Comparator的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA语言-比较器Comparator

    目录 一、什么是Comparator 二、Java compare方法和compareTo方法 三、java中Comparable和Comparator的区别 Comparator的例子 Comparator 是javase中的接口,位于java.util包下。 数组工具类和集合工具类中提供的工具方法sort方法都给出了含有Comparator接口的重载方法。 List实例调sort方法 demo如下: 使

    2024年02月06日
    浏览(31)
  • Java8之Function函数、BiFunction函数详解

    众所周知,Java8提供了一下非常重要的函数式接口。今天我们就来讲讲其中一个函数式接口----- Function 接口。 下面的代码就是Function接口的全部代码。接下来我们逐个分析一下。 @FunctionalInterface 表明该接口是一个函数式接口 T, R T 代表参数,R 代表返回值。 第一个方法------R

    2024年02月11日
    浏览(25)
  • Java8 函数式编程stream流

    Java 8 中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的 API 和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。 ​场景

    2024年02月15日
    浏览(26)
  • Java8函数式编程(Lambda表达式)

    Lambda 表达式是一个匿名方法,将行为像数据一样进行传递。 Lambda 表达式的常见结构:BinaryOperatorInteger add = (x, y) → x + y。 函数接口指仅具有单个抽象方法的接口,用来表示 Lambda 表达式的类型。 Stream 是用函数式编程方式在集合类上进行复杂操作的工具。 这行代码并未做什

    2024年02月16日
    浏览(30)
  • Windows11配置Java8开发环境 - JDK1.8

    1、下载JDK 我们要下载的是Oracle版本的JDK,我们首先进入Oracle的官网的Java下载页面:https://www.oracle.com/cn/java/technologies/downloads/ 一直往下滑 ,找到 Java8 —点击 Windows (如果你是其他系统选择你对应的系统即可)— 在下方根据你的电脑系统类型选择对应的X86或X64然后点击下载

    2024年02月10日
    浏览(38)
  • 从零开始搭建Springboot开发环境(Java8+Git+Maven+MySQL+Idea)

    所谓万事开头难,对于初学Java和Springboot框架的小伙伴往往会花不少时间在开发环境搭建上面。究其原因其实还是不熟悉,作为在IT界摸爬滚打数年的老司机,对于各种开发环境搭建已经了然于胸,自己当年也是这么过来的。 今天我就毕其功于一役,解放大家的时间,让凡人

    2024年04月17日
    浏览(72)
  • Java中的比较器(Comparator)

    Java中的比较器(Comparator)是一种对象,用于定义两个对象之间的比较规则。它是一个独立的类,实现了Comparator接口,通常用于对集合中的元素进行排序。Comparator接口中有一个compare()方法,它接受两个对象作为参数,并返回一个int值,表示它们的顺序。 下面是一个简单的例

    2024年02月11日
    浏览(32)
  • Java入门8(Comparator比较器,HashMap)

    ​Comparator不同于Comparable,使用更加的灵活,可以在不同场景下使用比较器,实际开发中,更推荐comparator比较器 Set接口常用实现类 三个常用实现类:TreeSet(基于Java红黑树,底层map),HashSet(哈希表,底层map),LinkedHashSet() Set特点: 不允许存储重复元素 没有索引,不能

    2024年02月04日
    浏览(30)
  • BCSP-玄子Java开发之Java Web编程CH02_JSP核心内置对象

    JSP内置对象是 Web 容器创建的一组对象 out对象 request对象 response对象 session对象 application对象 …… 无需实例化,可以直接使用 为什么JSP的内置对象不需要实例化? JSP内置对象是由Web容器初始化并加载的 这些实例按照JSP规范进行了默认的初始化操作,可以直接在JSP中使用 服务

    2024年02月11日
    浏览(38)
  • java自然排序Comparable和比较器排序Comparator

    案例需求 存储学生对象并遍历,创建TreeSet集合使用无参构造方法 要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序 实现步骤 使用空参构造创建TreeSet集合 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的 自定义的Student类实

    2024年02月07日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包