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);
    }
}
​
相关推荐
RainbowSea21 小时前
12. LangChain4j + 向量数据库操作详细说明
java·langchain·ai编程
RainbowSea21 小时前
11. LangChain4j + Tools(Function Calling)的使用详细说明
java·langchain·ai编程
考虑考虑1 天前
Jpa使用union all
java·spring boot·后端
用户3721574261351 天前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊1 天前
Java学习第22天 - 云原生与容器化
java
渣哥1 天前
原来 Java 里线程安全集合有这么多种
java
间彧1 天前
Spring Boot集成Spring Security完整指南
java
间彧1 天前
Spring Secutiy基本原理及工作流程
java
Java水解1 天前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆1 天前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试