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

罗湖区网站公司软文网站推广

罗湖区网站公司,软文网站推广,建设信用网站的作用,重庆企业网站建设在日常开发中,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.dtcms.com/wzjs/280888.html

相关文章:

  • 宁波专业网站制作设计长沙seo 优化选智投未来no1
  • 反馈网站制作seo优化是怎么优化的
  • 做网站签订合同某个产品营销推广方案
  • 重庆企业网站制作公司seo网络培训班
  • 家庭宽带做私人网站湖南省人民政府
  • 西安做网站的公司有哪些营销战略
  • 乡镇网站个人做可以不seo培训网
  • 番禺网站建设外包我要登录百度
  • 广州做网站的价格推广赚佣金的平台
  • 图片制作的软件有哪些广东seo推广方案
  • 确定网站建设的目的申请网站怎么申请
  • 四川住房建设部官方网站泰安seo
  • 网站首页是乱码 其他页面正常企业网站定制开发
  • 移动网站设计教程对网站的建议和优化
  • 开发一个app需要什么品牌seo是什么
  • 食品网站建设方案北京seo网站推广
  • 重庆网站建设公司招聘百度学术官网论文查重免费
  • wordpress仿站佛山网站优化服务
  • 云南做企业网站多少钱广告联盟怎么做
  • 怎么做彩票网站代理南京seo培训
  • b2c网站开发策划旅游企业seo官网分析报告
  • 微信文章 图片 wordpress株洲seo优化哪家好
  • 自己做网站兼职商品促销活动策划方案
  • 草拟一份网络推广方案南宁seo全网营销
  • 建站平台 做网站2021年度关键词有哪些
  • python的基本语法seo广告优化
  • 湖北省建设厅网站资质在线seo优化
  • 微信模板编辑器安徽seo网络优化师
  • php用什么工具做网站谷歌关键词搜索量数据查询
  • 创新的中小型网站建设软文发稿平台