Java中的流(Stream)以及它们在集合操作中的作用和例子

Java中的流(Stream)是Java 8引入的一个新特性,主要用于处理集合数据。流提供了一种声明式的方式来处理数据,使代码更加简洁和易于理解。通过使用流,你可以对集合数据进行各种复杂的操作,如过滤、映射、排序、聚合等,而无需编写大量的迭代代码。

流的主要作用包括:

简化集合操作:通过链式调用的方式,你可以将多个操作组合在一起,形成一个流畅的操作序列。

并行处理:流支持并行处理,可以充分利用多核CPU的性能优势,提高数据处理速度。

延迟执行:流的操作是懒加载的,只有在需要结果时才会执行操作,这有助于提高程序的性能。

下面是一个使用Java流进行集合操作的简单例子:

java

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

public class StreamExample {

public static void main(String\[\] args) {

// 创建一个整数列表

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);

// 使用流进行过滤操作,找出所有偶数

List<Integer> evenNumbers = numbers.stream()

.filter(n -> n % 2 == 0)

.collect(Collectors.toList());

System.out.println("Even numbers: " + evenNumbers);

// 使用流进行映射操作,将每个数字乘以2

List<Integer> doubledNumbers = numbers.stream()

.map(n -> n * 2)

.collect(Collectors.toList());

System.out.println("Doubled numbers: " + doubledNumbers);

// 使用流进行排序操作

List<Integer> sortedNumbers = numbers.stream()

.sorted()

.collect(Collectors.toList());

System.out.println("Sorted numbers: " + sortedNumbers);

}

}

在上面的例子中,我们首先创建了一个包含整数的列表。然后,我们使用了流的filter方法来找出所有的偶数,map方法将每个数字乘以2,以及sorted方法进行排序。最后,我们使用collect方法将结果收集到一个新的列表中。

需要注意的是,流操作不会修改原始集合,而是返回一个新的集合或结果。这是因为流操作是懒加载的,而且流操作本身是无状态的。所以,每次对流进行操作时,都会返回一个新的结果。

相关推荐
大数据魔法师42 分钟前
Streamlit(二十三)- 教程(二)- 动态导航
python·web
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
心中有国也有家3 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
来杯@Java4 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记4 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥4 小时前
匿名函数 lambda + 高阶函数
java·python·算法
vb2008115 小时前
FastAPI APIRouter
开发语言·python
東雪木5 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r5 小时前
Java调用链MCP分析工具
java·python·ai编程
杨充5 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法