【java】常用Stream方法

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

Stream两大特点

  1. 可读性强
  2. 不可变性(基于新的流,不改变原始数据)

整体来说,使用非常舒适

一、steam生成

 Stream<String> stream = Stream.of("A", "B", "C", "D");
 stream.forEach((item)->{
     System.out.println(item);
 });

 //将list转化为stream,
 List<Integer> list = List.of(1,2,3);
 list.stream().forEach(System.out::println);

 //将array转化为stream
 int[] nums = new int[5];
 Arrays.stream(nums).forEach((item)->{
     System.out.println(item);
 });

/** 
总结:
of : of初始化List、Map都有,这方面一致
从list和array转化为stream的时候
list相对简单一点,直接stream()就可以了
array复杂一点,Arrays.stream(arr)
 
* /

二、stream转化为Array和List

(1) 使用toArray得到Array

 int[] arr =  list.stream().mapToInt((item)->{
     //需要返回integer,mapToInt内部会对Integer拆包
     return Integer.valueOf(item);
 }).toArray();

(2)使用collect得到List(当然也可以转成Set)

List<Integer> numList = Arrays.stream(nums).boxed().collect(Collectors.toList());
numList.stream().forEach(System.out::println);

总结:

将array转为list的时候,需要一个boxed,
当然如果是一个String数组的话,就不需要boxed

三、使用map

//mapTo[Int | Long | Double]: toArray补充,转化为特定类型的stream

int[] arr =  list.stream().mapToInt((item)->{
    return Integer.valueOf(item); //返回integer,然后应该是内部做了一层转int
}).toArray();
Arrays.stream(arr).forEach(System.out::println);


//使用map,可以从一种流转化为另外一种流

Stream<String> strStream =  list.stream().map((item)->{
    return String.valueOf(item);
});
strStream.forEach(System.out::println);

四、使用filter

  Stream<String> ns =  List.of("1","2","3").stream().filter((item)->{
      return item == "1";
  });
  ns.forEach(item->{
      System.out.println(":"+item);
  });
  

五、使用使用limit和skip

  list.stream().limit(2).forEach(item->{
      System.out.println("l:"+item);
  });

  list.stream().skip(2).forEach(item->{
      System.out.println("s:" + item);
  });
 

六、使用min、max和count

 var min = list.stream().min(Integer::compareTo).get().intValue();
 System.out.println("min:" +min);

 //当然我们也可以使用array试一下,可以看出来,一开始如果就是int,就很方便
 var minn = Arrays.stream(nums).min().getAsInt();
 System.out.println("minn:" +minn);//先get再转化为intValue

七、使用sorted文章来源地址https://www.toymoban.com/news/detail-565133.html

  //自然排序
  list.stream().sorted().forEach(item->{
      System.out.println("sort:"+item);
  });

  //自然逆序排序
  list.stream().sorted(Comparator.reverseOrder()).forEach(item->{
      System.out.println("rsort:"+item);
  });;

  
  //根据类属性正向和逆向排序  
  Student s1 = new Student();
  s1.setAge(35);
  s1.setName("zhangsan");

  Student s2 = new Student();
  s2.setAge(20);
  s2.setName("lisi");

  Student s3 = new Student();
  s3.setAge(40);
  s3.setName("wangwu");

  List<Student> nlist = new ArrayList<>();
  nlist.add(s1);
  nlist.add(s2);
  nlist.add(s3);

  //基于属性正向排序
  //Comparator的comparing方法
  nlist.stream().sorted(Comparator.comparing(Student::getAge)).forEach(item->{
      System.out.println("s:"+item.getAge());
  });

  //逆序,注意reversed是和comparing连着的,链式操作
  nlist.stream().sorted(Comparator.comparing(Student::getAge).reversed()).forEach(item->{
      System.out.println("rs:"+item.getAge());
  });


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

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

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

相关文章

  • 【Stream流】java中Stream流详细使用方法

    在Java中, Stream 是一种用于处理集合数据的流式操作API。它提供了一种简洁、灵活、高效的方式来对集合进行各种操作,如过滤、映射、排序等。下面是一些 Stream 的常用功能和详细的代码示例: 创建流: 从集合创建流: stream() 方法可以从集合创建一个流。 从数组创建流:

    2024年02月07日
    浏览(39)
  • Java——Stream流的peek方法

    Java Stream中的peek()方法也是用于查看每个元素,但不改变流的操作的方法。它接收一个Consumer类型的参数,该参数用于针对每个元素执行副作用操作。该方法返回一个与原始流相同的新流,因此可以进行链式操作。 使用peek()方法可以方便地在流处理过程中调试或记录某些数据

    2024年01月20日
    浏览(38)
  • java List的stream()方法解析

    一、简介 常用的4种stream()用法。 (1) list.stream().map().collect() 方法,可以获取list中JavaBean的某个字段,转成一个新的list。 (2) list.stream().filter().map().collect() 方法,可以对list中的JavaBean进行筛选,保留符合条件的 JavaBean,然后将JavaBean中的某个字段,转成一个新的list。 (3) list.st

    2024年01月18日
    浏览(33)
  • Java Stream对象并行处理方法parallel()

            Stream.parallel() 方法是 Java 8 中 Stream API 提供的一种并行处理方式。在处理大量数据或者耗时操作时,使用 Stream.parallel() 方法可以充分利用多核 CPU 的优势,提高程序的性能。本文将从以下几个方面对 Stream.parallel() 进行详解。 什么是 Stream.parallel() 方法         

    2024年02月16日
    浏览(52)
  • Java Stream API的基本使用方法

    Java各个版本所更新的主要内容: 1.Java SE 8:引入了一些新特性,如lambda表达式、Stream API、格式化日期、国际化等。此外,还对并发编程进行了改进,引入了线程安全的 Stream API 。 2.Java SE 9:新增了分布式架构的支持,引入了CompletableFuture、ZK等新特性。此外,还对Jit编译器进

    2024年02月03日
    浏览(30)
  • Java 8 中的 Stream API - map() 方法详解

    摘要: Java 8 中的 Stream API 提供了一种新的处理集合和数组的方式,可以使代码更加简洁、易读,同时还可以提高性能。其中 map() 方法是比较常用的方法之一,它可以将 Stream 对象中的每个元素映射为另一个元素。本文将对 Java 8 中的 Stream API 和 map() 方法进行详细介绍,并通

    2024年04月09日
    浏览(43)
  • Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lambda 的连贯使用

    ​empty(): ​of() // 非null 就继续执行 否则抛异常 ​ ofNullable () ​get() //非null就get 否则异常 ​//lambada // 根据是否为NULL进行操作 ​// filter进行以上对下进行输入 如果opt是一集合的话 , 无法进行筛选 , 只能使用集合本身进行filter 取到map orElseThrow() //是空就抛出自定义异常

    2024年02月05日
    浏览(28)
  • 使用Java的stream().sorted方法对集合进行排序

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

    2024年02月04日
    浏览(45)
  • JAVA07_Stream流中FindFirst方法查找元素第一个

    ①. Stream的findFirst方法在此流中查找第一个元素作为Optional,如果流中没有元素,findFirst返回空的Optional,如果findFirst选择的元素为null,它将抛出NullPointerException Optional findFirst() ②. findAny():返回流中的任意一个元素;如果流是空的,则返回空 对于串行流,输出的都是查找第一个元素 对于

    2024年02月12日
    浏览(35)
  • 进阶JAVA篇-深入了解 Stream 流对象的创建与中间方法、终结方法

    目录         1.0 Stream 流的说明         2.0 Stream 流对象的创建         2.1 对于 Collection 系列集合创建 Stream 流对象的方式         2.2 对于 Map 系列集合创建 Stream 流对象的方式         2.3 对于数组创建 Stream 流对象的方式         3.0 Stream 流的中间方法      

    2024年02月08日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包