Stream流的用法

中间方法,操作Stream流中的数据。

方法 作用
filter 过滤
limit 获取前几个数据
skip 跳过前几个数据
distinct 数据去重
concat 合并两个流
map 转换数据类型
sorted 排序

使用案例——中间方法

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;

public class Demo {
    public static void main(String[] args) {

        List list1 = new ArrayList<>();
        List list2 = new ArrayList<>();
        Collections.addAll(list1, 1, 2, 3, 4, 5);
        Collections.addAll(list2, 6, 7, 8, 9, 10);

        List collect1 = list1.stream().filter(s -> s >= 3).toList();
        System.out.println(collect1);// [3, 4, 5]

        List collect2 = list1.stream().limit(3).toList();
        System.out.println(collect2);// [1, 2, 3]

        List collect3 = list1.stream().skip(2).toList();
        System.out.println(collect3);// [3, 4, 5]

        list1.add(1);
        List collect4 = list1.stream().distinct().toList();
        System.out.println(collect4);// [1, 2, 3, 4, 5]

        List collect5 = Stream.concat(list1.stream(), list2.stream()).toList();
        System.out.println(collect5);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

        List collect6 = list1.stream().map(String::valueOf).toList();
        System.out.println(collect6);// [1, 2, 3, 4, 5, 1]

        List collect7 = list1.stream().sorted().toList();
        System.out.println(collect7);// [1, 1, 2, 3, 4, 5]
    }
}

终结方法,以不同的方式结束Stream流。

方法 作用
forEach 遍历
count 统计
toArray 收集数据,得到数组
toList 收集数据,得到集合

使用案例——终结方法

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Demo {
    public static void main(String[] args) {

        List list = new ArrayList<>();
        Collections.addAll(list, 1, 2, 3, 4, 5);

        list.stream().filter(s -> s >= 3).forEach(System.out::println);// 遍历打印

        long count = list.stream().filter(s -> s >= 3).count();// 统计数量

        Integer[] array = (Integer[]) list.stream().filter(s -> s >= 3).toArray();// 得到数组

        List collect = list.stream().filter(s -> s >= 3).toList();// 得到集合
    }
}

你可能感兴趣的:(其他内容,stream,spring,boot,java,后端)