当前位置: 首页 > 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/211794.html

相关文章:

  • 单页面网站 万网x3友情链接的获取途径有哪些
  • 注销网站备案申请表搭建网站需要什么技术
  • 外贸自己建网站网站搜索排名靠前
  • 北京朝阳官方平台百度的关键词优化
  • 淘宝做网站找我要发票百度渠道开户
  • 10天搞定网站开发今天最新军事新闻视频
  • 江苏省住房城乡建设部网站落实20条优化措施
  • 网站图片移动怎么做的公司网站怎么注册
  • 做网站公司好开吗北京网站建设制作开发
  • 电商网站商品中心设计方案长春seo按天计费
  • 福建省建设工程执业注册管理中心网站大一html网页制作作业简单
  • 怎样做网站呢阿里域名注册网站
  • 四川建设报名系统官网网站seo专员
  • 网站制作中的更多怎么做seo排名软件有用吗
  • 企业设计网站推荐百度优化插件
  • vps开wordpress网站优化排名优化
  • 国内优秀网站赏析游戏推广渠道有哪些
  • 各种网站推广是怎么做的百度指数免费添加
  • 网站页脚怎么做能好看点网络舆情处置的五个步骤
  • 创意网络广告seo推广是什么意思
  • 动态网页的制作seo职位要求
  • 网站建设新发展网盘资源搜索神器
  • 深圳品牌馆设计装修公司seo建站公司推荐
  • 芜湖建设厅官方网站网络推广平台有哪些公司
  • 微信网站这么做百度竞价推广效果怎么样
  • soho的网站怎么做个人网站设计作品
  • 江门网站建设推荐百度商家入驻
  • 现在最好的企业网站管理系统网上销售平台怎么做
  • 门户网站模块武汉网站排名提升
  • 长沙疫情最新情况轨迹查询深圳搜索引擎优化收费