Java8 Stream流常见操作--持续更新中

这篇具有很好参考价值的文章主要介绍了Java8 Stream流常见操作--持续更新中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍Java8 Stream

Java8 Stream流是一种处理数据集合的方式,它可以对集合进行一系列的操作,包括过滤、映射、排序等,从而实现对集合中元素的处理和转换。Stream流是一种惰性求值的方式,只有在需要返回结果时才会执行实际操作,这种方式可以提高程序的性能。

1.1 主要特点

  • 延迟执行:Stream流中的操作并不会立即执行,只有在遇到终止操作时才会触发执行。

  • 多次使用:同一个Stream流可以进行多个操作,并且每个操作都是独立的,不会影响其他操作。

  • 链式调用:Stream流中的操作可以进行链式调用,使代码更加简洁易懂。

  • 并行执行:Stream流可以进行并行操作,提高程序的性能。

1.2 主要操作

  • filter:对集合中的元素进行过滤,返回符合条件的元素。

  • map:对集合中的元素进行映射,返回映射后的元素集合。

  • distinct:去重操作,返回不重复的元素集合。

  • sorted:排序操作,返回按照指定规则排序后的集合。

  • limit:限制集合元素的数量,只返回指定数量的元素。

  • forEach:遍历集合中的元素。

  • reduce:对集合中的元素进行归纳操作,返回一个值。

  • collect:将集合中的元素转换为另一个集合类型,比如List、Set、Map等。

上面介绍了Java8 Stream流的特点和操作,下面我们来实操一下文章来源地址https://www.toymoban.com/news/detail-666131.html

二、常见操作

2.1 创建新数组

List<Fruit> newList = fruits.stream()
    .map(f -> new Fruit(f.getId(), f.getName() + "s", f.getCountry()))
    .collect(Collectors.toList())

2.2 筛选数组

Map<Boolean, List<TransferData>> preAvg = list.stream()
        .collect(Collectors.groupingBy(x -> x.getStatus() != 3));
List<TransferData> trueList = preAvg.get(true);

2.3 筛选数组2

List<TypeAttribute> result = list.stream().filter((e) ->
   e.getIsDeleted() != 1
).collect(Collectors.toList());

2.4 筛选不为空

list.stream().filter(e -> StringUtils.isNotBlank(e.getUrl())).collect(Collectors.toList())

2.5 数组移除指定元素

dictList.removeIf(e->e.getDictKey().equals("10") );

2.6 List数组求和

long zsSum = zs.stream().reduce(Integer::sum).orElse(0);

2.7 初始化list

List<Integer> list = Stream.of(1, 2, 3).collect(Collectors.toList());

2.8 针对某个属性对倒序

List<TransferData> sList = trueList.stream().sorted(Comparator.comparing(TransferData::getCreateTime).reversed()).collect(Collectors.toList());
List<TransferData> falseList = preAvg.get(false);

2.9 获取数组对象的所有id

List<Long> delIds = delList.stream().map(TypeAttribute::getId).collect(Collectors.toList());

到了这里,关于Java8 Stream流常见操作--持续更新中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Java8中Stream详细用法大全

    Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的Lambda ,给我们操作集合(Collection)提供了极大的便利。Stream流是JDK8新增的成员,允许以声明性方式处理数据集合,可以把Stream流看作是遍历数据集合的一个高级迭代器。Stream 是 Java8 中处理集合的关键抽

    2023年04月08日
    浏览(80)
  • Java8的Stream流的学习

    Stream可以由数组或集合创建,对流的操作分为两种: 中间操作,每次返回一个新的流,可以有多个。 终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。 stream和parallelStream的简单区分: stream是顺序流,由主线程按

    2024年02月07日
    浏览(42)
  • JAVA-- 在Java8 Parallel Stream中如何自定义线程池?

    使用Parallel Stream时,在适当的环境中,通过适当地使用并行度级别,可以在某些情况下获得性能提升。 如果程序创建一个自定义ThreadPool,必须记住调用它的shutdown()方法来避免内存泄漏。 如下代码示例,Parallel Stream并行处理使用的线程池是ForkJoinPool.commonPool(),这个线程池是

    2024年02月09日
    浏览(43)
  • Java8 Stream流处理树形结构数据

    参考资料 Java8新特性-使用Stream流递归实现遍历树形结构 ID为2,6,11的Menu 是 ID为1的Menu子节点 ID为3,4,5的Menu 是 ID为2的Menu子节点 💥 注意 是下面这种写法的一种更简单的写法

    2024年02月01日
    浏览(54)
  • Java8 Stream 之groupingBy 分组讲解

    本文主要讲解:Java 8 Stream之Collectors.groupingBy()分组示例 Collectors.groupingBy() 分组之常见用法 功能代码: /**      * 使用java8 stream groupingBy操作,按城市分组list      */     public void groupingByCity() {         MapString, ListEmployee map = employees.stream().collect(Collectors.groupingBy(Employee::getCi

    2024年02月13日
    浏览(46)
  • Java8的stream之groupingBy()分组排序

    groupingBy()是Stream API中最强大的收集器Collector之一,提供与SQL的GROUP BY子句类似的功能。 需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点 - 通常通过传递lambda表达式。 TreeMap默认按照key升序排序,collectPlan.descendingMap()可以进行降序排

    2024年02月12日
    浏览(39)
  • Java8-使用stream.sorted()对List排序

    1.流的定义 Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的操作! 如果流中的元素的类实现了 Comparable 接口,即有自己的排序规则,那么可以直接调用 sorted() 方法对元素进行排

    2024年02月16日
    浏览(57)
  • JAVA8中list.stream()的一些简单使用

    为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。 stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。 stream只能被使用一次,一旦遍历

    2024年02月03日
    浏览(46)
  • Java8中Stream流求最大值最小值

    1. stream().reduce()实现 2. stream().max()或stream().min()实现 1. stream().reduce()实现 2. Collectors.summarizingInt()实现 3. stream().max()或stream().min()实现 1. stream().reduce()实现 2. Collectors.summarizingLong()实现 3. stream().max()或stream().min()实现 1. stream().reduce()实现 2. Collectors.summarizingLong()实现 3. stream().max(

    2024年01月17日
    浏览(38)
  • JAVA8新特性(Stream API,LocalDate,LocalDateTime)

    一. Stream API 1.1 基础 代码参数准备: 场景一:知道一个ListUser对象,如何获取ListUser的所有用户id? 场景二:知道一个ListUser对象,如何获取ListUser中年龄大于50的用户? 场景三:知道一个ListUser对象,如何按照年龄从小到小排序,从大到小排序? 场景四:知道一个ListUser对象

    2024年02月16日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包