Java 中的 Stream noneMatch() 方法及示例2025年1月7日 | 阅读 6 分钟 Java Stream API 中的 noneMatch() 方法是一个重要函数,用于评估给定流中的所有元素是否都不满足特定条件。当我们需要证明集合中的所有项都不满足某个谓词时,此方法特别有用,该方法返回 'true' 或 'false',具体取决于是否有项符合指定条件。 方法签名boolean:如果流中没有元素与给定的谓词匹配,则 noneMatch() 方法返回布尔值 true,否则返回 false。 noneMatch:这是方法名,表示该方法在 Stream API 中执行的操作。 Predicate<? super T>:参数 predicate 是 Java util.function 包中的一个函数式接口。它定义了一个名为 test() 的单一方法,该方法接受一个类型为 T(或其超类型)的参数并返回一个布尔值。 示例 1:检查所有字符串是否非空在此示例中,我们有一个包含 "Assam"、"Banglore" 和 "Chennai" 的单词列表。使用 words.stream(),我们将列表转换为流。noneMatch(String::isEmpty) 使用对 String::isEmpty 的方法引用检查流中是否没有空字符串。输出将为 true,因为 words 中的所有字符串都非空。 文件名: NoneMatchStringExample.java 输出 None of the words are empty: true 示例 2:检查是否有员工年龄小于 18 岁在此示例中,我们定义了一个具有 name 和 age 属性的 Employee 类。我们创建了三个代表不同年龄的 Employee 实例。employees.stream() 将员工列表转换为流。noneMatch(emp -> emp.getAge() < 18) 使用 lambda 表达式作为谓词来检查是否有员工年龄小于 18 岁。输出将为 false,因为有一个员工(Bob)未成年(年龄 < 18)。 文件名: NoneMatchEmployeeExample.java 输出 None of the employees are underage: false 示例 3:检查书籍列表是否包含特定类型在此示例中,我们定义了一个具有 title 和 genre 属性的 Book 类。我们创建了三个代表不同类型的 Book 实例。books.stream() 将书籍列表转换为流。noneMatch(book -> book.getGenre().equals(genreToCheck)) 使用 lambda 表达式作为谓词来检查流中的书籍是否都不属于指定的类型。输出将为 true,因为 books 中的书籍都不属于 "科幻" 类型。 文件名: NoneMatchBookExample.java 输出 None of the books are in the genre 'Science Fiction': true 示例 4:检查所有成绩是否高于某个阈值我们有一个包含双精度值的 grades 列表,代表学生的成绩。noneMatch(grade -> grade < passThreshold) 使用 lambda 表达式作为谓词来检查流中的成绩是否没有低于及格阈值。输出将为 true,因为 grades 中的所有成绩都高于 70.0。 文件名: NoneMatchGradeExample.java 输出 None of the grades are below 70.0: true 示例 5:检查所有交易是否高于某个金额在此示例中,我们定义了一个带有 id 和 amount 属性的嵌套 Transaction 类。我们创建了一个包含 Transaction 实例的交易列表。transactions.stream() 将交易列表转换为流。noneMatch(transaction -> transaction.getAmount() < thresholdAmount) 使用 lambda 表达式作为谓词来检查流中是否没有交易金额低于 thresholdAmount。输出将为 false,因为交易 "T3" 的金额低于 $100.0。 文件名: TransactionExample.java 输出 None of the transactions are below $100.0: false 示例 6:检查任务列表是否都已标记为完成在此示例中,我们定义了一个带有 description 和 isCompleted 属性的嵌套 Task 类。我们创建了一个包含 Task 实例的任务列表。tasks.stream() 将任务列表转换为流。noneMatch(task -> !task.isCompleted()) 使用 lambda 表达式作为谓词来检查流中的任务是否没有未完成的。输出将为 false,因为 "Review code" 未完成。 文件名: TaskCompletionExample.java 输出 All tasks are completed: false 示例 7:检查预约列表是否都已确认在此示例中,我们定义了一个带有 time 和 isConfirmed 属性的嵌套 Appointment 类。我们创建了一个包含 Appointment 实例的预约列表。appointments.stream() 将预约列表转换为流。noneMatch(appointment -> !appointment.isConfirmed()) 使用 lambda 表达式作为谓词来检查流中的预约是否没有未确认的。输出将为 false,因为 "11:00 AM" 的预约未被确认。 文件名: AppointmentConfirmationExample.java 输出 All appointments are confirmed: false |
在当今快节奏的软件开发环境中,高效的数据处理至关重要。开发人员经常遇到的一个常见任务是将 JSON(JavaScript 对象表示法)数据转换为 Java 对象。传统上,这个过程涉及手动编码和调试。然而,随着在线工具的出现,开发人员现在拥有方便且...
5 分钟阅读
在 Java 编程世界中,图形用户界面 (GUI) 在创建交互式应用程序方面发挥着至关重要的作用。在开发基于 GUI 的应用程序时,有效处理关闭操作至关重要。在 Java 中,“设置默认关闭操作”是一个关键方法,用于控制行为...
5 分钟阅读
Java 是一种多功能且广泛使用的编程语言,它提供了许多用于开发复杂高效软件应用程序的功能。Java 面向对象编程中的两个主要概念是扩展和实现。这两个关键字在类关系以及如何...
5 分钟阅读
鉴于 Java 的基础自主性,串行接口是困难的。串行通信需要标准化的编程接口和明确的阶段执行,这对于 Java 来说是困难的。悲剧的是,Sun 对 Java 中的串行通信并未给予太多关注。Sun 已经定义了一个串行通信编程接口...
阅读9分钟
反转数字的位涉及将每个位从 0 翻转为 1,反之亦然。在 Java 中,可以使用按位非 (~) 运算符高效地实现这一点,该运算符直接在二进制级别执行反转,为...提供了一种快速直接的解决方案。
阅读 8 分钟
Java.nio.DoubleBuffer 具有 compact() 函数。要压缩提供的缓冲区,请使用 DoubleBuffer 类。值从缓冲区的起始点和其限制转移到缓冲区。,n+1 被分配到缓冲区的插槽,并且其容量设置为...
阅读 3 分钟
在本教程中,我们将了解如何在 Java 中多次执行 main() 方法。方法:使用静态块我们知道静态块首先执行。因此,它可以用来显式执行 main 方法。一个被隐式执行为主...
阅读 2 分钟
计算随机数被认为是任何计算机应用程序的基本要求之一,它应用于密码学、模拟和游戏等领域。随机数是未由先前事件确定的实数,而伪随机数是通过确定性方法生成的...
5 分钟阅读
随着多线程和异步编程的出现,Java 提供了一种执行并行任务的强大方法,称为 ExecutorService。但是,在管理多个线程和处理任务执行过程中出现的错误时,您可能会遇到 ExecutionException。在本节中,我们将探讨…
5 分钟阅读
? 在 Java 中创建表通常涉及使用数组或集合等数据结构。有几种方法可以在 Java 中创建表。一种方法是使用 JTable 类。在本节中,我们将讨论创建表的各种方法...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India