Java Stream API常用操作全解析:表格+示例代码大汇总
在Java中,Stream API提供了一系列的操作来处理集合数据。以下是一些常用的Stream API及其示例代码: 1. filter(Predicate<? super T> predicate) - 过滤流中的元素,保留满足条件的元素。 示例代码: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); // 输出: [2, 4] ``` 2. map(Function<? super T,? extends R> mapper) - 将流中的每个元素通过给定的函数进行转换。 示例代码: ```java List<String> words = Arrays.asList("apple", "banana", "cherry"); List<Integer> wordLengths = words.stream() .map(String::length) .collect(Collectors.toList()); System.out.println(wordLengths); // 输出: [5, 6, 6] ``` 3. flatMap(Function<? super T,? extends Stream<? extends R>> mapper) - 将流中的每个元素转换为另一个流,然后将所有流连接成一个流。 示例代码: ```java List<String> sentences = Arrays.asList("Hello world", "Java stream"); List<String> words = sentences.stream() .flatMap(sentence -> Arrays.stream(sentence.split(" "))) .collect(Collectors.toList()); System.out.println(words); // 输出: [Hello, world, Java, stream] ``` 4. distinct() - 返回一个去除重复元素的流。 示例代码: ```java List<Integer> numbersWithDuplicates = Arrays.asList(1, 2, 3, 2, 4, 5, 3); List<Integer> distinctNumbers = numbersWithDuplicates.stream() .distinct() .collect(Collectors.toList()); System.out.println(distinctNumbers); // 输出: [1, 2, 3, 4, 5] ``` 5. sorted() - 根据自然顺序对流中的元素进行排序。 示例代码: ```java List<Integer> unsortedNumbers = Arrays.asList(5, 2, 8, 1, 9); List<Integer> sortedNumbers = unsortedNumbers.stream() .sorted() .collect(Collectors.toList()); System.out.println(sortedNumbers); // 输出: [1, 2, 5, 8, 9] ``` 6. sorted(Comparator<? super T> comparator) - 根据提供的比较器对流中的元素进行排序。 示例代码: ```java List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); List<String> sortedNames = names.stream() .sorted(Comparator.reverseOrder()) .collect(Collectors.toList()); System.out.println(sortedNames); // 输出: [Charlie, Bob, Alice] ``` 7. limit(long maxSize) - 返回一个不超过指定大小的流。 示例代码: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); List<Integer> firstThreeNumbers = numbers.stream() .limit(3) .collect(Collectors.toList()); System.out.println(firstThreeNumbers); // 输出: [1, 2, 3] ``` 8. skip(long n) - 跳过流中的前n个元素。 示例代码: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); List<Integer> lastTwoNumbers = numbers.stream() .skip(3) .collect(Collectors.toList()); System.out.println(lastTwoNumbers); // 输出: [4, 5] ``` 9. collect(Collector<? super T,A,R> collector) - 将流中的元素收集到一个新的结果容器中。 示例代码: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream() .collect(Collectors.summingInt(Integer::intValue)); System.out.println(sum); // 输出: 15 ``` 这些是Java Stream API的一些常用操作及其示例代码。这只是Stream API的一部分,还有其他许多可用的操作,如`reduce()`, `forEach()`, `peek()`等。 ######[AI写代码神器 | 1163点数解答 | 2024-05-29 22:50:20]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)420
- Vue项目代码优化:职位详情异常处理、简历校验与收藏操作提示升级 (GPT | 136点数解答 | 2024-12-29 17:09:05)243
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)90
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)97
- "Complete and Optimize Your Video Player Class with C++: Audio Callback Included"(阿里通义 | 549点数解答 | 2024-08-08 15:59:25)337
- C++ 文件读取与内存分配:代码错误修正及完善示例(字节豆包 | 413点数解答 | 2024-11-02 18:16:35)321
- CSS技巧:鼠标移入a标签自动隐藏指定div(阿里通义 | 181点数解答 | 2023-10-26 09:52:31)403
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)46
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)322
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1198
- HTML 代码里藏着的“一起睡觉的幸福”:超链接、图像与 div 的奇妙组合 (阿里通义 | 182点数解答 | 2023-10-26 09:46:09)354
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)296