0


Java中Steam流常用API介绍

Stream流常用API

Stream流的常用API(中间操作方法)
名称说明filter(Predicate<? super T> predicate)用于对流中的数据进行过滤。limit(long maxSize)获取前几个元素skip(long n)跳过前几个元素distinct()去除流中重复的元素。依赖(hashCode和equals方法)concat(Stream a, Stream b)合并a和b两个流为一个流

filter方法: 用于对流中的数据进行过滤

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","赵敏","周芷若","张三丰","张三");// 对Stream流中的数据进行过滤, 过滤后会返回一个新的Stream流Stream<String> st = list.stream().filter(s -> s.startsWith("张"));// 对过滤后的Stream流进行遍历输出
    st.forEach(s ->System.out.println(s));}

中间方法也称为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程。

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","赵敏","周芷若","张三丰","张三");// 对Stream流中的数据进行过滤
    list.stream().filter(s -> s.startsWith("张")).forEach(s ->System.out.println(s));// 张无忌 张三丰 张三}

limit: 获取前几个元素

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","赵敏","周芷若","张三丰","张三");// 获取前两个元素
    list.stream().limit(2).forEach(s ->System.out.println(s));//张无忌 赵敏}

skip: 跳过前几个元素

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","赵敏","周芷若","张三丰","张三");// 跳过前三个元素
    list.stream().skip(3).forEach(s ->System.out.println(s));// 张三丰 张三}

distinct: 去除重复元素

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","张无忌","赵敏","周芷若","周芷若","张三丰","张三");

    list.stream().distinct().forEach(s ->System.out.println(s));// 张无忌 赵敏 周芷若 张三丰 张三}

concat: 合并a, b为一个流

publicstaticvoidmain(String[] args){List<String> list1 =newArrayList<>();Collections.addAll(list1,"aaa","bbb","aaa");List<String> list2 =newArrayList<>();Collections.addAll(list2,"ccc","ddd","ccc");Stream<String> a = list1.stream();Stream<String> b = list2.stream();Stream<String> c =Stream.concat(a, b);
    c.forEach(s ->System.out.println(s));// aaa bbb aaa ccc ddd ccc}

扩展API: map加工方法

publicstaticvoidmain(String[] args){List<String> list =newArrayList<>();Collections.addAll(list,"张无忌","张无忌","赵敏","周芷若","周芷若","张三丰","张三");

    list.stream().map(s ->"金庸小说-"+ s).forEach(s ->System.out.println(s));// 打印结果:// 金庸小说-张无忌// 金庸小说-张无忌// 金庸小说-赵敏// 金庸小说-周芷若// 金庸小说-周芷若// 金庸小说-张三丰// 金庸小说-张三}

注意:

在Stream流中无法直接修改集合、数组中的数据, 也就是说操作Stream流不会影响原来的数组或集合。

Stream流的常见终结操作方法:
名称说明forEach(Consumer action)对此流的每个元素执行遍历操作long count()返回此流中的元素数

注意:终结操作方法,调用完成后流就无法继续使用了,原因是不会返回Stream了。

标签: java 开发语言 jvm

本文转载自: https://blog.csdn.net/m0_71485750/article/details/127493355
版权归原作者 蓝桉cyq 所有, 如有侵权,请联系我们删除。

“Java中Steam流常用API介绍”的评论:

还没有评论