From d5784f5337e7d12eea2f6e282e847ed460fbab9d Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Wed, 31 Jul 2024 09:23:40 +0800 Subject: [PATCH] =?UTF-8?q?:rocket:=20feat(=E6=96=B0=E5=A2=9E):=20Stream?= =?UTF-8?q?=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/cn/bunny/stream/StreamTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/service/src/test/java/cn/bunny/stream/StreamTest.java b/service/src/test/java/cn/bunny/stream/StreamTest.java index a090ec6..a4ded95 100644 --- a/service/src/test/java/cn/bunny/stream/StreamTest.java +++ b/service/src/test/java/cn/bunny/stream/StreamTest.java @@ -8,6 +8,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.stream.Stream; public class StreamTest { @@ -158,4 +159,55 @@ public class StreamTest { }); // 迭代所有元素 stream.close(); // 在所有操作完成后关闭流 } + + // 这两个方法用于获取流中的最大值和最小值。它们通常用于包含可比较元素的流。 + @Test + void minAndMaxTest() { + Stream numbers = Stream.of(1, 2, 3, 4, 5); + + // 获取流中的最大值 + Integer max = numbers.max(Integer::compareTo).orElse(0); + System.out.println("Max value: " + max); + + // 最小值 + Stream numbers2 = Stream.of(1, 2, 3, 4, 5); + Integer min = numbers2.min(Integer::compareTo).orElse(0); + System.out.println("Min value: " + min); + } + + // 这两个方法用于从流中获取元素。findFirst 返回流中的第一个元素,而 findAny 返回流中的任意一个元素(在并行流中更有用)。 + @Test + void findTest() { + Stream strings = Stream.of("apple", "banana", "cherry"); + + // 找到第一个元素 + Optional firstElement = strings.findFirst(); + System.out.println("First element: " + firstElement.orElse("No element found")); + + // 找到任意一个元素 + Stream strings2 = Stream.of("apple", "banana", "cherry"); + Optional anyElement = strings2.findAny(); + System.out.println("Any element: " + anyElement.orElse("No element found")); + } + + // anyMatch:判断流中是否至少有一个元素满足条件。 + // allMatch:判断流中的所有元素是否都满足条件。 + // noneMatch:判断流中是否所有元素都不满足条件。 + @Test + void matchTest() { + // 检查是否有元素大于3 + Stream numbers = Stream.of(1, 2, 3, 4, 5); + boolean anyGreaterThanThree = numbers.anyMatch(num -> num > 3); + System.out.println("Any number greater than 3: " + anyGreaterThanThree); + + // 检查是否所有元素都小于10 + Stream numbers2 = Stream.of(1, 2, 3, 4, 5); + boolean allLessThanTen = numbers2.allMatch(num -> num < 10); + System.out.println("All numbers less than 10: " + allLessThanTen); + + // 检查是否所有元素都不等于0 + Stream numbers3 = Stream.of(1, 2, 3, 4, 5); + boolean noneEqualToZero = numbers3.noneMatch(num -> num == 0); + System.out.println("No numbers equal to zero: " + noneEqualToZero); + } }