前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stream流式编程

Stream流式编程

作者头像
用户11097514
发布2024-05-30 21:29:27
810
发布2024-05-30 21:29:27
举报
文章被收录于专栏:技术分享技术分享

介绍

Java中的Stream是一种流式编程方式,主要用于对集合数据进行操作和处理。Stream可以让我们更加简单、高效、灵活地处理集合数据,避免了繁琐的循环和判断,同时也提高了代码的可读性和可维护性。

Stream主要包括以下几个特点:

  1. 集合元素的处理是通过Stream的一系列中间操作来完成的,例如过滤、排序、映射等。
  2. Stream的中间操作是惰性求值的,只有当终止操作调用时才会执行。
  3. Stream的终止操作会触发中间操作的执行,并返回一个结果,例如收集、计数、查找等。

实现

对于Stream流式编程方式 ,我们实现起来就按照三步进行执行即可。

1. 得到Stram流

首先我们要做的就是得到stream,对于不同的数据存储类型,得到的Stream流是不同的

下图是几种常见的方式 :

2. 中间操作

使用Stream流常见的中间操作的方法应该是filter

但是除了filter ,我们还有很多其他的操作方法 ,比如Sortedlimitskipdistinctconcatmap

下图是这几种方法的介绍。

常见的filter等操作实现:

代码语言:javascript
复制
public static void main(String[] args) {
    List<Integer> numbers = Arrays.asList(2, 3, 4, 1, 6, 5);
    List<Integer> result = numbers.stream()
            .filter(n -> n % 2 == 0) // 过滤偶数
            .sorted() // 排序
            .map(n -> n * n) // 映射为平方数
            .collect(Collectors.toList()); // 收集到List中
    System.out.println(result); // [4, 16, 36]
}
注意一:

使用中间方法返回新的Stream流,原来的Stream流只能使用一次,如果想使用最好使用链式编程

注意二 :

修改Stream流中的数据 ,是不会改变原来集合或数组中的数据

3. 终止操作

终止操作是Stream 的最后一步,当执行终止操作时,Stream将不再接收新的元素,并开始执行中间操作生成的操作链。

Collect

对于Collect最后的收集操作 ,我们可以收集为一下几种形式,一旦收集操作 开始执行 ,那么前面的中间操作将开始产生操作链

map集合

,它用于将Stream中的元素转换为一个Map对象。该方法接受两个参数

  • 第一个参数是Function类型的对象,用于将Stream中的元素转换为Map的key
  • 第二个参数是Function类型的对象,用于将Stream中的元素转换为Map的value。

如果Stream中的元素存在key相同的情况,则会抛出IllegalStateException异常。

如果是函数式是编程, 那么它其中的方法Function中的数据对应关系为 下图

代码语言:javascript
复制
List<Person> persons = new ArrayList<>();
persons.add(new Person("Tom", 20));
persons.add(new Person("Jack", 22));
persons.add(new Person("Lucy", 21));
Map<String, Integer> map = persons.stream().collect(Collectors.toMap(Person::getName, Person::getAge));

对于函数式编程 和流式编程生成的规则

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 实现
    • 1. 得到Stram流
      • 2. 中间操作
        • 3. 终止操作
        相关产品与服务
        数据保险箱
        数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档