stream里面filter foreach 还能再fileter吗
是的,在 Java 的 Stream API 中,你可以在 filter 和 forEach 操作之间再次使用 filter。实际上,你可以根据需要链式调用多个中间操作(如 filter、map 等),但请注意,forEach 是一个终端操作,它会消费流并产生一个非流的结果。一旦调用了 forEach 或其他任何终端操作,流就被消费了,不能再进行更多的操作。
以下是一个示例,展示了如何在流操作中使用多个 filter:
以下是一个示例,展示了如何在流操作中使用多个 filter:
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<String> items = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
items.stream()
.filter(s -> s.startsWith("a")) // 第一个 filter,筛选出以 "a" 开头的元素
.filter(s -> s.length() > 4) // 第二个 filter,筛选出长度大于 4 的元素
.forEach(System.out::println); // 终端操作,打印结果
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)