当前位置: 首页 > news >正文

网站一直百度上搜不到是怎么回事今日西安头条最新消息

网站一直百度上搜不到是怎么回事,今日西安头条最新消息,做兼职哪个网站比较好,破解版下载大全免费下载在日常开发中,Stream API 提供了一种高效且易于使用的工具集来处理集合数据。 本文主要讲解 Stream 的两个特性:惰性执行,不修改原始数据源。 为什么说这两个、而不讲下其他的特性呢?主要是因为在开发中如果忽略这两个特性的话&…

在日常开发中,Stream API 提供了一种高效且易于使用的工具集来处理集合数据。

本文主要讲解 Stream 的两个特性:惰性执行不修改原始数据源

为什么说这两个、而不讲下其他的特性呢?主要是因为在开发中如果忽略这两个特性的话,使用 Stream 写出来的代码就可能 Bug 多多啊,因此在这里特别强调下。

1.惰性执行

1.1.说明

惰性执行 意味着 Stream 的中间操作(intermediate operations,如filter, map)不会立即执行,而是在遇到终止操作(terminal operations,如forEach, collect)时才会触发。

1.2.反例

考虑以下代码:
List<String> words = Arrays.asList("apple", "banana", "cherry");
words.stream().filter(word -> {System.out.println("Filtering: " + word);return word.startsWith("a");});

以上代码执行后并不会有打印输出,这是因为尽管调用了中间操作 filter,但是 filter 后并没有调用终止操作的方法。

1.3.正确使用

应该习惯性地在流操作的最后,都调用一个终止操作

例如:

words.stream().filter(word -> word.startsWith("a")).forEach(System.out::println);

1.3.1.如何区分中间操作和终止操作

这其实很简单,如果一个方法的返回结果为一个新的流 (Stream),那么它是中间操作,否则就是终止操作。

2.不修改原始数据源

2.1.说明

Stream 的操作并不会改变原始数据,Stream 操作都是基于原始数据创建新的结果

2.2.反例

假设有如下代码:
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
numbers.stream().map(n -> n * 2).collect(Collectors.toList());System.out.println(numbers); // 输出 [1, 2, 3]

可能有人会错误地认为,Stream 操作执行后,numbers列表的元素会发生改变,然后就把numbers作为计算后的结果接着往下执行逻辑。

但实际上,Stream 操作的结果是生成了一个新的集合,而原始的集合numbers保持不变。

2.3.正确使用

应该用一个新对象接收 Stream 操作的结果,后续如果需要使用计算后的结果,使用的应该是这个新的对象,而不是原始的数据集合。

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> doubledNumbers = numbers.stream().map(n -> n * 2).collect(Collectors.toList());
System.out.println(doubledNumbers); // 输出 [2, 4, 6]

又或者,可以直接用 Stream 操作的结果覆盖掉原始的数据对象。

List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
numbers = numbers.stream().map(n -> n * 2).collect(Collectors.toList());
System.out.println(numbers); // 输出 [2, 4, 6]

如果有帮助的话,可以点个赞支持一下嘛🙏

http://www.yidumall.com/news/27039.html

相关文章:

  • 怎么注册国外网站潍坊自动seo
  • 网站改版案例营销推广方案模板
  • 平面设计要素seo关键词排名优化费用
  • 网站设计怎么做百度竞价推广方案范文
  • 科技部网站建设合同全国疫情最新
  • 外国网站怎么进入免费做网站怎么做网站链接
  • 做编程网站有哪些内容最火的推广软件
  • wordpress提交审批上海网络优化seo
  • 互联网做网站的话术百度竞价调价软件
  • 哪个网站可以免费学做美甲深圳seo优化排名优化
  • 做网站的基本步骤百度指数分析
  • 专业做网站排名多少钱搜索排名优化
  • 建筑工程公司需要什么资质sem 优化软件
  • 杨和网站开发西安seo和网络推广
  • 建设网站所需要什么河南网站推广电话
  • 用pdf怎么做电子书下载网站品牌seo培训
  • 7万字短篇小说哪家网站做的好如何注册一个自己的网站
  • 知乎网站建设入门书谷歌优化seo
  • 做视频的音乐哪里下载网站广告咨询
  • 公司给别人做的网站违法吗杭州谷歌推广
  • 网站建设远洋国际怎么推广一个网站
  • 济南传承网站建设公司百度搜索优化怎么做
  • web前端是什么专业seo顾问张智伟
  • 有免费做网站的吗网络营销的优势有哪些?
  • 柳河县做网站seo怎么做推广
  • 网站建设做网站好做吗网站推广投放
  • 做网站1天转多钱最经典的营销案例
  • h5制作网站开发深圳在线制作网站
  • 网站开发前端工程师网站优化排名的方法
  • 网站建设市场调查报告海外网站