Java 8 Stream :优雅地处理数据

Java 8 引入的Stream API提供了一种声明式处理数据的方式,提高了代码的简洁性和效率。Stream流式处理支持串行和并行操作,结合Lambda表达式,使得在集合、数组等数据操作上更加高效。本文介绍了Stream的基础使用,如筛选(filter)、映射(map)、计数(count)、限制(limit)和跳过(skip)等操作。
摘要由CSDN通过智能技术生成

Stream流

Stream流是什么,为什么要用它

  1. Stream是Java 8 新引入的一个包( java.util.stream),它让我们能用声明式的方式处理数据(集合、数组等)。
  2. Stream流式处理相较于传统方法简洁高效,也便于进行并发编程。
  3. Stream

Stream是Java8的一大亮点,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation)或者大批量数据操作。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。同时,它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork/join并行方式来拆分任务和加速处理过程。所以说,Java8中首次出现的 java.util.stream是一个函数式语言+多核时代综合影响的产物。

Stream流的基础使用

简单综合案例

问题和需求:在一个字符串集合中找出以“阿”开头的长度为3的字符串并打印

传统方法

import java.util.ArrayList;
import java.util.List;

public class Demo02NormalFilter {
	public static void main(String[] args) {
		List<String> list = new ArrayList<>();
		list.add("阿拉贡");
		list.add("阿尔玟");
		list.add("埃尔隆德");
		list.add("凯兰崔尔");
		list.add("瑟兰督伊");
        
		List<String> zhangList = new ArrayList<>();
		for (String name : list) {
			if (name.startsWith("阿")) {
				zhangList.add(name);
			}
		}
        
		List<String> shortList = new ArrayList<>();
		for (String name : zhangList) {
			if (name.length() == 3) {
				shortList.add(name);
			}
		}
		for (String name : shortList) {
			System.out.println(name);
		}
	}
}

这里我们可以看到传统的方法中含有三个循环,每一个作用不同:

  1. 首先筛选所有姓“阿”的人;
  2. 然后筛选名字有三个字的人;
  3. 最后进行对结果进行打印输出。

这样的处理过程代码冗长,导致代码可读性较差&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值