Java8 Stream详解~排序:sorted

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

sorted,中间操作。有两种排序:

  • sorted():自然排序,流中元素需实现Comparable接口

  • sorted(Comparator com):Comparator排序器自定义排序

「案例:将员工按工资由高到低(工资一样则按年龄由大到小)排序」

public class StreamTest {
 public static void main(String[] args) {
  List<Person> personList = new ArrayList<Person>();

  personList.add(new Person("Sherry", 9000, 24, "female", "New York"));
  personList.add(new Person("Tom", 8900, 22, "male", "Washington"));
  personList.add(new Person("Jack", 9000, 25, "male", "Washington"));
  personList.add(new Person("Lily", 8800, 26, "male", "New York"));
  personList.add(new Person("Alisa", 9000, 26, "female", "New York"));

  // 按工资升序排序(自然排序)
  List<String> newList = personList.stream().sorted(Comparator.comparing(Person::getSalary)).map(Person::getName)
    .collect(Collectors.toList());
  // 按工资倒序排序
  List<String> newList2 = personList.stream().sorted(Comparator.comparing(Person::getSalary).reversed())
    .map(Person::getName).collect(Collectors.toList());
  // 先按工资再按年龄升序排序
  List<String> newList3 = personList.stream()
    .sorted(Comparator.comparing(Person::getSalary).thenComparing(Person::getAge)).map(Person::getName)
    .collect(Collectors.toList());
  // 先按工资再按年龄自定义排序(降序)
  List<String> newList4 = personList.stream().sorted((p1, p2) -> {
   if (p1.getSalary() == p2.getSalary()) {
    return p2.getAge() - p1.getAge();
   } else {
    return p2.getSalary() - p1.getSalary();
   }
  }).map(Person::getName).collect(Collectors.toList());

  System.out.println("按工资升序排序:" + newList);
  System.out.println("按工资降序排序:" + newList2);
  System.out.println("先按工资再按年龄升序排序:" + newList3);
  System.out.println("先按工资再按年龄自定义降序排序:" + newList4);
 }
}

使用Javastream().sorted方法对集合进行排序 Java Stream API 提供了丰富的方法来对流中的元素进行处理和操作。其中,sorted() 方法用于对流中的元素进行排序。本文将深入探讨sorted() 方法的用法、示例代码以及详细解释,以帮助您更好地理解和使用这个方法。 阅读详情

相关推荐

Java8 新特性之Stream(九)-- Streamsorted()详细用法

【代码】Java8 新特性之Stream(九)-- Streamsorted()详细用法。

PUYALEI的博客 3277

Java8-使用stream.sorted()对List排序

Java8-使用stream.sorted()对List排序

MissOfSpring的博客 3712

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 423

Java8 使用 stream().sorted()对List集合进行排序

集合对象以学生类()为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。使用stream().sorted()进行排序,需要该类实现Comparable接口,该接口只有一个方法需要实现,如下:Java 关于重写compareTo方法//名称 private String name;//性别 true男 false女 private Boolean gender;//年龄 private Integer age;//身高 private Double height;

LuckyTHP 2971

java stream使用指南-------sorted使用及进阶

文章目录引入数据准备1. 依赖2. 相关类初体验基础用法1. 逆序几种写法2. 多级排序3. null值处理进阶1. 本质2. 拓展 引入 用了一段时间的jdk8的新特性,lambda表达式、方法引用、stream流,用起来是真的顺手啊,最近碰到了一个排序的问题,引发了一些思考,然后就写了这篇博客,归纳总结sorted的用法,在做笔记的同时也让自己有更深的理解。 数据准备 1. 依赖 我喜欢用google的集合工具类,让我构造测试数据更简便。然后也用lombok,依赖: <!--goo

ql_7256的博客 2万+

java 8sorted分类排序

java 8sorted分类排序 1.需求: 先按照 channelWeight 进行 降序排列,如果 channelWeight 相同 再按照 score进行降序排列。 下面是实体: @Data class P { Double channelWeight; Double score; String channelName; } 普通的sorted的用法就是: List<P> list = new ArrayList<>(); P

zgz15515397650的博客 1万+

Java8排序stream.sorted()

在这个页面上我们将提供java 8 Stream sorted()示例。我们可以按照自然排序以及Comparator提供的排序对流进行排序。在java 8中Comparator可以使用lambda表达式进行实例化。我们还可以反转自然排序以及提供的排序Comparator。自然排序使用提供的顺序Comparable,必须由其实例是流元素的类实现。在这个页面上我们将排序List,Map并...

延陵缥缈的博客 11万+

Java8 Streamsorted方法 排序讲解

本文主要讲解:Java 8 Streamsorted()排序示例:使用java 8 的流式sorted排序List集合 功能说明:以自然序或着自定义Comparator接口排序规则来排序一个流。 功能详细说明: 1、sorted()默认使用自然序排序, 其中的元素必须实现Comparable接口 2、sorted(Comparator<? super T> comparator):我们可以使用lambada 来创建一个Comparator实例。可以按照升序或着降序来排序元素。 ...

zhouzhiwengang的专栏 10万+

Java 8 新特性】Java 8 Stream使用sorted()方法自定义排序的示例

在本页中,我们将提供java 8 Stream sorted()排序的示例。 我们可以按照自然顺序和比较器提供的顺序对流进行排序。 在Java8中,可以使用lambda表达式实例化比较器(Comparator)。 我们还可以颠倒自然顺序和比较器(Comparator)提供的顺序。 自然排序使用Comparable提供的排序,该排序必须由实例为流元素的类实现。 在本页中,我们将使用java 8 Stream sorted()方法对列表List, Map和Set进行排序。 1.使用Stream sorted()

猫巳的博客 2万+

list.stream().sorted() Java8 Stream流的sorted()的排序。正序、倒序、多字段排序

示例Bean以下我们会使用这个Bean来做示例。字段排序

hua_cheng的博客 1万+

stream流中sorted排序浅析

记一次stream流的sorted方法

fz11zf的博客 3万+

Java8Stream流的sorted()排序

文章目录使用Stream.sorted进行排序ListStream sorted()具体用法简单的List排序复杂实体对象排序Set中Stream sorted()具体用法Map中Stream sorted()具体用法参考资料 使用Stream.sorted进行排序 sorted()语法: 1、sorted() 默认使用自然序排序, 其中的元素必须实现Comparable 接口 2、sorted(Comparator<? super T> comparator) :我们可以使用lamba

qq_45430163的博客 9740

Java8排序 Streamsorted方法

Java 8 Streamsorted()排序示例:使用java 8 的流式排序功能说明:以自然序或着自定义 接口排序规则来排序一个流。功能详细说明:1、 默认使用自然序排序, 其中的元素必须实现 接口 2、 :我们可以使用lambada 来创建一个 实例。可以按照升序或着降序来排序元素。官网代码示例: 实战:按照文件编号进行排序,并计算相关文件的最小页次和最大页次 Stream.sorted 多字段排序 通过Comparator.thenComparing()实现功能说明:1.先以年龄升序 2.当年龄相

qq_43842093的博客 7945

Java8 List.stream().sorted 根据对象元素排序

1、写在前面 Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的操作! 如果流中的元素的类实现了 Comparable 接口,即有自己的排序规则,那么可以直接调用 sorted() 方法对元素进行排序! 2、stream().sorted 操作总结 @Data static class User { private String name; //状态

strom_xu 2万+

java8sorted,Java8排序stream.sorted()

使用Java8排序stream.sorted()sorted-example国外对Java8一系列总结的不错, 翻译过来给你们共享这篇文章将会讲解Java 8 Stream sorted()示例, 咱们可以以天然序或着用Comparator 接口定义的排序规则来排序一个流。Comparator 能用用lambada表达式来初始化, 咱们还可以逆序一个已经排序的流。接下来咱们将会使用java 8 的...

weixin_39531582的博客 1621

Java Streamsorted 方法:自定义排序全解析

通过掌握 sorted() 方法的各种用法,你可以灵活应对各种复杂的排序需求,编写出简洁、高效且易于维护的代码。在实际开发中,合理运用 Comparator 的各种工具方法和特性,能够显著提升代码质量和开发效率。

潜意识Java的博客 4358

Java8 Stream详解

Java8中提供了Stream对集合操作作出了极大的简化,学习了Stream之后,我们以后不用使用for循环就能对集合作出很好的操作。 一、流的初始化与转换:   Java中的Stream的所有操作都是针对流的,所以,使用Stream必须要得到Stream对象:   1、初始化一个流:     Stream stream = Stream.of("a", "b", "c");

HappyHeng的博客 2万+
上一篇: Java8 Stream详解~收集(collect)
下一篇: Java8 Stream详解~ 提取/组合
gqltt
博客等级 码龄18年 234粉丝 550原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值