java的stream流

简介: java的stream流

Java Stream Java 8 引入的一个新的抽象概念:

链式操作:Stream流的操作可以链式调用,形成一个操作流水线。这样可以将多个操作组合在一起,以便对集合进行复杂的处理。用于处理集合数据的流式操作。Stream 提供了一种更简洁、更具表达性的方式来操作集合,使得代码更易读、更易维护。下面是关于 Java Stream 的一些基本信息:

  1. Stream 的特点
  • 流是一种与集合操作密切相关的概念,它可以对集合中的元素进行各种操作,如过滤、映射、排序等。
  • 流提供了一种声明式的风格,让你可以在一行代码中完成复杂的数据处理操作。
  • 流操作可以进行串行(Sequential)或并行(Parallel)处理,利用多线程提高处理效率。
  1. Stream 的创建
  • 从集合创建流:通过集合类的stream()parallelStream()方法,可以将集合转化为对应的流。
  • 从数组创建流:使用Arrays.stream(array)方法可以将数组转化为流。
  • 其他方式创建流:如通过生成器 (Stream.generate()) 创建、通过函数迭代 (Stream.iterate()) 创建等。
  1. Stream 的操作
  • 中间操作:中间操作是指在流上进行的转换操作,返回一个新的流以便进行连续的操作。常见的中间操作有filter()map()distinct()sorted()等。
  • 终端操作:终端操作是指对流进行最终的处理,产生一个结果或副作用。常见的终端操作有forEach()collect()reduce()count()等。
  1. Stream 的惰性求值 Stream 使用了惰性求值的策略,只有在执行终端操作时才会触发中间操作的执行。这种方式可以提高效率,避免不必要的计算。

5.    并行流:Stream流支持并行处理,可以利用多核处理器的优势,在处理大数据集时提高效率。可以通过parallel()方法将串行流转换为并行流。

  1. 示例代码下面是一个简单的示例代码,展示了如何使用 Stream 进行集合的处理操作:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);

intsum= numbers.stream()

               .filter(n -> n % 2 == 0)

               .mapToInt(n -> n * 2)

               .sum();

System.out.println(sum); // 输出:28

各个指令的具体解释:

  • filter:用于根据指定条件筛选集合中的元素。
  • map:用于对集合中的元素进行转换或提取。
  • sorted:用于对集合中的元素进行排序。
  • distinct:用于去除集合中的重复元素。
  • limit:用于限制集合中元素的数量。
  • collect:用于将流中的元素收集到一个集合中。
  • forEach:用于对集合中的每个元素执行指定操作。

需要注意的是,Stream流是一次性的,即对同一个数据源的Stream流只能进行一次操作。如果需要对同一个数据源进行多次操作,需要重新创建Stream流。同时,Stream流不会改变原始集合的内容,而是生成一个新的集合或结果。

 image.png

相关文章
|
3天前
|
Java
java8使用stream查找重复元素
java8使用stream查找重复元素
13 2
|
14天前
|
Java API
深入探讨 Java 8 集合操作:全面解析 Stream API 的强大功能
深入探讨 Java 8 集合操作:全面解析 Stream API 的强大功能
18 2
|
3天前
|
Java
java使用Stream流找出集合对象中最小值
java使用Stream流找出集合对象中最小值
9 1
|
4天前
|
Java
java同一个任务使用for循环与Stream比较
java同一个任务使用for循环与Stream比较
10 1
|
10天前
|
Java 大数据 API
Java中的Lambda表达式和Stream API的高效使用
【6月更文挑战第18天】在Java 8中引入的Lambda表达式和Stream API为集合操作带来了革命性的改进,提供了一种更加简洁、声明式的编程方式。本文将深入探讨如何利用这些特性来提升代码的可读性和开发效率,同时避免常见的性能陷阱。
|
9天前
|
存储 Java 大数据
Java Stream API
Java Stream API
13 1
|
16天前
|
存储 Java API
Java8实战-使用Stream
Java8实战-使用Stream
11 0
Java8实战-使用Stream
|
18小时前
|
Java API 数据处理
Java中的lambda表达式与Stream API:高效的函数式编程
Java中的lambda表达式与Stream API:高效的函数式编程
|
1天前
|
存储 安全 Java
必知的技术知识:java8之stream
必知的技术知识:java8之stream