Java基础知识总结(28)

末端方法

末端方法是对流的最终操作。当对某个 Stream 执行末端方法后,该流将会被"消耗"
且不再可用。换句话说就是末端方法一旦调用后就会关闭流,再不能对流进行操作,否则会抛出异常。

方法 功能
forEach(Consumer action) 遍历流中所有元素,对每个元素执行 action
toArray() 将流中所有元素转换为一个数组
reduce() 该方法有三个重载的版本,都用于通过某种操作来合并流中的元素
min() 返回流中所有元素的最小值
max() 返回流中所有元素的最大值
count() 返回流中所有元素的数量
anyMatch(Predicate predicate) 判断流中是否至少包含一个元素符合 Predicate 条件
allMatch(Predicate predicate) 判断流中是否每个元素都符合 Predicate 条件
noneMatch(Predicate predicate) 判断流中是否所有元素都不符合 Predicate 条件
findFirst() 返回流中的第一个元素
findAny() 返回流中的任意一个元素
复制代码
/**
 *末端方法练习
 */
public class StreamDemo4 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("张麻子","师爷","黄老爷","李东方","阿廖沙");
        Stream<String> stream = list.stream();
        //流转数组
        Object[] objects = stream.toArray();
        List<Integer> list1 = Arrays.asList(8,7,6,1,3);
        Integer reduce = list1.stream().reduce(6, BinaryOperator.maxBy((o1, o2) -> {
            return o1 - o2;
        }));
        //获取最大值
        Optional<Integer> max = list1.stream().max(Integer::compareTo);
        //获取最小值
        Optional<Integer> min = list1.stream().min(Integer::compareTo);
        //统计元素个数
        long count = list1.stream().count();
        System.out.println(count);
        System.out.println(max.get());
        System.out.println(min.get());
​
​
        Optional<String> first = list.stream().findFirst();
        System.out.println(first.get());
        //返回第一个元素
        Optional<String> any = list.stream().findAny();
        System.out.println(any.get());
    }
}
复制代码
/**
 * 末端方法练习
 */
public class StreamDemo5 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("张麻子","师爷","黄老爷","李东方","阿廖沙","让子弹飞");
        //只要有1个元素满足条件即可
        boolean b = list.stream().anyMatch(t -> {
            return t.length() > 3;
        });
        //所有的元素都满足条件时才会返回true,否则返回false
        boolean c = list.stream().allMatch(t -> {
            return t.length() >= 2;
        });
        //所有元素都不满足于条件时才会返回true,只要有1个满足条件就会返回false
        boolean d = list.stream().noneMatch(t->{
            return t.length()>4;
        });
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}
​
相关推荐
BD_Marathon1 小时前
【Flink】部署模式
java·数据库·flink
鼠鼠我捏,要死了捏4 小时前
深入解析Java NIO多路复用原理与性能优化实践指南
java·性能优化·nio
CodeCraft Studio4 小时前
3D文档控件Aspose.3D实用教程:使用 C# 构建 OBJ 到 U3D 转换器
开发语言·3d·c#·3d渲染·aspose·3d文件格式转换·3d sdk
ningqw4 小时前
SpringBoot 常用跨域处理方案
java·后端·springboot
superlls4 小时前
(Redis)主从哨兵模式与集群模式
java·开发语言·redis
chenglin0165 小时前
C#_gRPC
开发语言·c#
骑驴看星星a5 小时前
数学建模--Topsis(Python)
开发语言·python·学习·数学建模
叫我阿柒啊6 小时前
Java全栈工程师面试实战:从基础到微服务的深度解析
java·redis·微服务·node.js·vue3·全栈开发·电商平台
hqxstudying7 小时前
mybatis过渡到mybatis-plus过程中需要注意的地方
java·tomcat·mybatis
tju新生代魔迷7 小时前
C语言宏的实现作业
c语言·开发语言