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);
    }
}
​
相关推荐
wuyk5558 小时前
Python 第三章:列表 List
服务器·开发语言·python
Evand J9 小时前
【MATLAB例程,车联网7】CACC网联车辆协同控制:ACC对比、V2X时延丢包与队列稳定性,附例程下载链接
开发语言·matlab·车联网
Lam Tang9 小时前
APS 系列文章 08
java·代理模式
要努力点9 小时前
Python入门第六课
开发语言·python
萧瑟余晖10 小时前
Java深入解析篇三十三之消息队列
java·开发语言
码匠许师傅10 小时前
【C++ 面试真题】聊聊 C++ 的序列容器
java·c++·面试
IT爱学堂10 小时前
尚硅谷Java+AI大模型应用开发革新版本 2025年3月
java·开发语言·人工智能
C++ 老炮儿的技术栈10 小时前
Qt5.9.1 Windows 完整开发环境搭建流程
开发语言·c++·windows·qt·编辑器·代码化
xcLeigh10 小时前
Go入门:无类型常量与类型常量的区别
服务器·开发语言·golang
泡沫冰@10 小时前
GO 语言基础
开发语言·算法·golang