首页 > 其他分享 >1. Stream

1. Stream

时间:2023-12-28 23:31:55浏览次数:24  
标签:java Stream 元素 API 使用 集合

Java Stream 是 Java 8 引入的一个新特性,用于处理集合数据。Stream API 提供了一种声明式、函数式的方式来处理集合,使得代码更加简洁、易读。

Stream API:Stream API是Java 8中引入的一个新特性,它允许对集合进行更强大和灵活的操作。通过使用Stream API,可以轻松地过滤、映射、排序和汇总集合中的元素。

Stream API和集合框架:Java 8中的Stream API可以与集合框架无缝集成,通过使用Stream API可以轻松地对集合进行操作,如过滤、映射、排序和汇总等。

Stream 的主要功能包括:

  1. 过滤(Filtering):通过条件筛选元素。
  2. 映射(Mapping):将元素转换成其他形式。
  3. 归约(Reducing):对元素进行聚合操作,如求和、求最大值等。
  4. 收集(Collecting):将结果收集到某种数据结构中,如列表、集合等。
  5. 查找和匹配:查找满足条件的元素,或者判断是否存在满足条件的元素。

使用 Stream 的好处:

  1. 代码简洁:通过链式操作,可以很方便地处理集合数据。
  2. 可读性强:函数式编程风格使代码更加易读。
  3. 性能优化:Stream API 在内部进行了很多优化,如延迟计算、并行计算等。

下面是一个简单的例子,展示了如何使用 Stream API:

java复制代码
 import java.util.Arrays;  
 
 import java.util.List;  
 
 import java.util.stream.Collectors;  
 
   
 
 public class StreamExample {  
 
     public static void main(String[] args) {  
 
         List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");  
 
           
 
         // 使用 Stream API 过滤出长度大于 4 的字符串  
 
         List<String> longNames = names.stream()  
 
                                        .filter(name -> name.length() > 4)  
 
                                        .collect(Collectors.toList());  
 
           
 
         System.out.println(longNames); // 输出: [Charlie, David]  
 
     }  
 
 }

在这个例子中,我们首先创建了一个包含几个字符串的列表。然后,我们使用 stream() 方法将列表转换为 Stream,接着使用 filter() 方法筛选出长度大于 4 的字符串,最后使用 collect() 方法将结果收集到一个新的列表中。

标签:java,Stream,元素,API,使用,集合
From: https://blog.51cto.com/u_11924918/9019436

相关文章

  • flink中的setStreamTimeCharacteristic 指定为EventTime的source需要自己定义event ti
    flink中的setStreamTimeCharacteristicTimeCharacteristic   env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) 此处可以取以下三类值:EventTime事件时间,事件(Event)本身的时间,即数据流中事件实际发生的时间,通常使用事件发生时的时间戳来描述,这些......
  • 无涯教程-Java9 - Stream API增强
    Java9改进的StreamAPI添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。Java9为Stream新增了几个方法:dropWhile、takeWhile、ofNullable,为iterate方法新增了一个重载方法。takeWhile语法defaultStream<T>takeWhile(Predicate<?superT>predic......
  • stream的优化:java封装的拆箱与装箱的弊端
    authors.stream().map(author->author.getAge).map(age->age+10)//Stream<Integer>.filter(age>18)//Stream<Integer>.foreach(System.out::println);上述是一个简单的stream流的使用,当我们拆开第二个map,或者filter的时候会发现,传入和传出的参数都是Intege......
  • DataStream(二)
    DataStream(二)目录 5.3.2聚合算子(Aggregation)5.3.3用户自定义函数(UDF)3.扁平映射(flatMap)flatMap操作又称为扁平映射,主要是将数据流中的整体(一般是集合类型)拆分成一个一个的个体使用。消费一个元素,可以产生0到多个元素。flatMap可以认为是“扁平化”(flatten)和“映......
  • C# 中使用 using 关键字和不使用 using 关键字创建 FileStream
    在C#中使用using关键字和不使用using关键字创建FileStream实例之间有一些区别。使用using关键字:using(FileStreamfileStream=newFileStream(filePath,FileMode.Open,FileAccess.Read)){//使用fileStream进行操作}using关键字用于创建FileStream......
  • 写写stream流的终结操作
    终结操作和中间操作的区别:中间操作返回的一直都是stream,所以可以一直使用,但是终结操作返回的不是stream,后面不能继续操作 foreach:对流中的所有元素进行遍历操作count:获取当前流内元素的个数//这个是无参的max&min:这个也是需要比较器的,具体写法和sort差不多,但是返回值是Option......
  • java集合stream操作
    forEach-遍历Stream<Integer>stream=Stream.of(2,3,1,4);stream.forEach(System.out::println);filter-过滤Stream<Integer>stream=Stream.of(2,3,1,4);Stream<Integer>newStream=stream.filter(num->num>2);System.out.pr......
  • 一文让你玩转 Java 8 Stream
    Java8中的StreamAPI是一个强大的处理数据的新特性,它提供了一种声明式、高效且易于并行化的数据处理方式。以下是一些Stream的主要特性和常用场景:主要特性:延迟执行(LazyEvaluation):Stream不会立即执行任何操作,而是在需要时才进行计算。这有助于提高性能和资源效率。函数式编......
  • 【poi】使用poi时报错:java.io.EOFException: Unexpected end of ZLIB input stream
    错误写法Workbookworkbook=null;try{//会报错Filefile=newFile("D:\\1.xlsx");workbook=newXSSFWorkbook(file);ByteArrayOutputStreambaos=newByteArrayOutputStream(); workbook.write(baos); workbook.close(); bytes=baos......
  • Java之Stream流及方法引用的详细解析二
    2.6Stream流综合练习【应用】案例需求现在有两个ArrayList集合,分别存储6名男演员名称和6名女演员名称,要求完成如下的操作男演员只要名字为3个字的前三人女演员只要姓林的,并且不要第一个把过滤后的男演员姓名和女演员姓名合并到一起把上一步操作后的元素作为构造方法的参数创建演员......