Stream API:像流水线一样处理数据
文章目录
一、从"手工作坊"到"智能工厂"——数据处理方式的进化
想象你是一家玩具厂的车间主任。传统生产方式中,工人要亲自完成:拆包装→筛选零件→组装→贴标签→装箱的全流程,就像用for循环处理集合数据,既费时又容易出错。而现代智能工厂的流水线,只需要设置好筛选机、加工机床、分拣机器人等设备,零件就会自动完成整个加工流程。
Java的Stream API正是这样的数据流水线。当我们面对集合数据时:
- 不用再亲自操作索引(告别
for(int i=0;...
) - 不用维护中间变量(不再需要
List tempList = new ArrayList()
) - 每个处理步骤独立运作(各司其职的流水线工位)
比如要统计1000个订单中金额大于500的电子产品数量,传统方式像手工记账,而Stream方式就像把订单扔进自动分拣机:
// 传统方式(手工作坊)
int count = 0;
for (Order order : orders) {
if (order.getCategory().equals("电子产品")
&& order.getAmount() > 500) {
count++;
}
}
// Stream方式(智能流水线)
long count = orders.stream()
.filter(o -> o.getCategory().equals("电子产品"))
.filter(o -> o.getAmount() > 500)
.count();
二、组装流水线的五个关键步骤
2.1 创建流水线(创建Stream)
// 从集合创建(最常用)
List<String> names = Arrays.asList("张伟", "李娜", "王芳");
Stream<String> stream1 = names.stream();
// 从数组创建
String[] cities = {
"北京", "上海", "广州"};
Stream<String> stream2 = Arrays.stream(cities);
// 直接生成元素
Stream<Integer> 数字流 = Stream.of(1, 2, 3, 4,