首页 > Java > java教程 > 如何使用谓词查找 Java 8 流中的第一个不匹配?

如何使用谓词查找 Java 8 流中的第一个不匹配?

DDD
发布: 2024-12-27 02:47:09
原创
889 人浏览过

How to Find the First Mismatch in a Java 8 Stream Using Predicates?

使用谓词查找流中的第一个不匹配

Java 9 引入了 takeWhile 和 dropWhile 操作,它们提供了一种基于限制流的便捷方法关于谓词。但是,在 Java 8 中,没有用于此目的的内置操作。

这里有一个自定义实现,用于在 Java 8 中使用谓词查找流中的第一个不匹配:

import java.util.stream.Stream;

public class LimitStreamByPredicate {

    public static void main(String[] args) {
        // Create an infinite stream of numbers
        Stream<Integer> numbers = Stream.iterate(1, n -> n + 1);

        // Predicate to check if a number is less than 10
        Predicate<Integer> predicate = n -> n < 10;

        // Create a limited stream using iteration
        Stream<Integer> result = numbers.iterator()
                .takeWhile(predicate)
                .map(n -> n);

        // Print the limited stream
        result.forEach(System.out::println);
    }
}
登录后复制

在此代码中,我们使用迭代器手动迭代无限流,直到遇到无法满足谓词的元素。然后,我们创建一个新流(结果),其中仅包含与谓词匹配的元素。

这种自定义方法提供了与 Java 8 中 takeWhile 等效的功能,允许您根据特定条件限制流,甚至如果当前 Java 版本中没有内置操作。

以上是如何使用谓词查找 Java 8 流中的第一个不匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板