searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Java Stream用法总结

2024-08-29 02:13:43
8
0

Java Stream API 是 Java 8 引入的一个重要特性,它提供了函数式编程风格的处理集合元素的方法,可以让你以声明式的方式来操作数据。下面是一些关键点和用法总结:

  1. Stream 的创建

    • 从集合创建 Stream:List<String> list = ...; Stream<String> stream = list.stream();
    • 从数组创建 Stream:String[] array = ...; Stream<String> stream = Arrays.stream(array);
  2. 中间操作

    • filter(Predicate<T> predicate):过滤流中的元素。
    • map(Function<T, R> mapper):将流中的元素映射为另一个流。
    • flatMap(Function<T, Stream<R>> mapper):将流中的每个值替换成另一个流,然后将所有的流连接成一个流。
    • distinct():去除重复元素。
    • sorted() 或 sorted(Comparator<T> comparator):排序流中的元素。
  3. 终止操作

    • forEach(Consumer<T> action):遍历流中的元素。
    • collect(Collector<T,A,R> collector):收集流中的元素到集合或其他形式的数据结构。
    • reduce(T identity, BinaryOperator<T> accumulator):将流中的元素归约到一个值。
    • anyMatch(Predicate<T> predicate):检查是否至少有一个元素满足条件。
    • allMatch(Predicate<T> predicate):检查是否所有元素都满足条件。
    • noneMatch(Predicate<T> predicate):检查是否没有元素满足条件。
    • findFirst():返回流中的第一个元素(Optional)。
    • count():返回流中元素的数量。
  4. 并行流

    • 使用 parallelStream() 创建并行流,可以利用多核处理器提高处理速度。
  5. 方法引用

    • 可以使用方法引用代替 Lambda 表达式,例如 list.stream().map(String::toUpperCase)

示例代码:

java
import java.util.Arrays;
import java.util.List;

public class StreamExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Tom", "Jerry", "Spike", "Tyke");
        
        // 过滤长度大于3的名字
        names.stream()
             .filter(name -> name.length() > 3)
             .forEach(System.out::println);
        
        // 映射为大写并收集到列表
        List<String> upperCaseNames = names.stream()
                                           .map(String::toUpperCase)
                                           .collect(Collectors.toList());
        
        // 并行流计算总长度
        long totalLength = names.parallelStream()
                                .mapToInt(String::length)
                                .sum();
        
        System.out.println("Total length of names: " + totalLength);
    }
}

以上就是 Java Stream API 的基本用法和一些常见操作的总结。

0条评论
作者已关闭评论
李****涛
6文章数
0粉丝数
李****涛
6 文章 | 0 粉丝
原创

Java Stream用法总结

2024-08-29 02:13:43
8
0

Java Stream API 是 Java 8 引入的一个重要特性,它提供了函数式编程风格的处理集合元素的方法,可以让你以声明式的方式来操作数据。下面是一些关键点和用法总结:

  1. Stream 的创建

    • 从集合创建 Stream:List<String> list = ...; Stream<String> stream = list.stream();
    • 从数组创建 Stream:String[] array = ...; Stream<String> stream = Arrays.stream(array);
  2. 中间操作

    • filter(Predicate<T> predicate):过滤流中的元素。
    • map(Function<T, R> mapper):将流中的元素映射为另一个流。
    • flatMap(Function<T, Stream<R>> mapper):将流中的每个值替换成另一个流,然后将所有的流连接成一个流。
    • distinct():去除重复元素。
    • sorted() 或 sorted(Comparator<T> comparator):排序流中的元素。
  3. 终止操作

    • forEach(Consumer<T> action):遍历流中的元素。
    • collect(Collector<T,A,R> collector):收集流中的元素到集合或其他形式的数据结构。
    • reduce(T identity, BinaryOperator<T> accumulator):将流中的元素归约到一个值。
    • anyMatch(Predicate<T> predicate):检查是否至少有一个元素满足条件。
    • allMatch(Predicate<T> predicate):检查是否所有元素都满足条件。
    • noneMatch(Predicate<T> predicate):检查是否没有元素满足条件。
    • findFirst():返回流中的第一个元素(Optional)。
    • count():返回流中元素的数量。
  4. 并行流

    • 使用 parallelStream() 创建并行流,可以利用多核处理器提高处理速度。
  5. 方法引用

    • 可以使用方法引用代替 Lambda 表达式,例如 list.stream().map(String::toUpperCase)

示例代码:

java
import java.util.Arrays;
import java.util.List;

public class StreamExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Tom", "Jerry", "Spike", "Tyke");
        
        // 过滤长度大于3的名字
        names.stream()
             .filter(name -> name.length() > 3)
             .forEach(System.out::println);
        
        // 映射为大写并收集到列表
        List<String> upperCaseNames = names.stream()
                                           .map(String::toUpperCase)
                                           .collect(Collectors.toList());
        
        // 并行流计算总长度
        long totalLength = names.parallelStream()
                                .mapToInt(String::length)
                                .sum();
        
        System.out.println("Total length of names: " + totalLength);
    }
}

以上就是 Java Stream API 的基本用法和一些常见操作的总结。

文章来自个人专栏
开发语言基础
4 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0