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

简单的做海报的网站包商科技wordpress

简单的做海报的网站,包商科技wordpress,手机网站模板图片,90设计网站创建时间在日常开发中,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.yayakq.cn/news/998016/

相关文章:

  • 辽阳企业网站建设服务模板wordpress git
  • 常州网站建设流程tornado网站开发 教程
  • 易龙天做的网站怎么样wordpress如何改界面
  • 北京网站建设正邦网站时间特效
  • 网站宣传工作汽车网站网页设计
  • 阿里云做网站需要些什么微网站注册
  • 请柬网站开发深圳做h5网站
  • 中山蚂蚁网站开发移动端网站开发技术
  • 建网站视频教程创新网站内容建设
  • 南通做阿里巴巴网站的单位网站分析报告怎么做
  • 有什么网站可以做微信支付国外文创产品设计
  • 企业网站建设主要类型及选择模板制作教程
  • 霸州有做滤芯网站的吗网站开发适合女生不
  • 网站开发过程阶段学校网站 建设措施
  • 自助建站代理新浪云主机上安装wordpress主题
  • wordpress导航网站主题wordpress微信域名回调
  • 网站管理 官网大型网站建设历史
  • 怎么做网站架构广州最好的商城网站制作
  • 亿玛酷网站建设有几个网站可以做代发的
  • 快速搭建一个网站网站建设技术服务费记什么科目
  • 2019销售网站开发与设计现状王也头像版
  • 购物网站开发案例下载网页设计模板百度云
  • 环保产品企业网站建设做网站游戏需要什么
  • 公司网站开发费用济南兴田德润o评价wordpress 字符截取
  • 官方模板关键字生成的代码添加在网站的什么地方?手机建筑网
  • 广州网站建设优化wordpress国外模板安装
  • 网站页面自动还原代码yw55516can优物入口
  • 东莞企业网站建设开发知名互联网公司有哪些
  • 阿里云建站文章搜索网络广告类型有哪几种
  • 网站解析怎么设置中国建设银行怎么添加卡网站