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

佛山从事网站建设百度小程序入口官网

佛山从事网站建设,百度小程序入口官网,怎么把个人做的网站发布到网上,焦作网站设计一、概述 Java8提供了lambda表达式,方便我们对数据集合进行操作,我们使用lambda表达式的时候,是不是有这样的疑问,如何对执行过程中的中间数据进行调试呢? 二、例子 在下面的例子中,我们实现随机最多生成…

一、概述

Java8提供了lambda表达式,方便我们对数据集合进行操作,我们使用lambda表达式的时候,是不是有这样的疑问,如何对执行过程中的中间数据进行调试呢?

二、例子

在下面的例子中,我们实现随机最多生成10位[0,60)的数据,并使用[1,10) 随机数限定个数

import java.util.Random;
import java.util.stream.Collectors;import org.apache.commons.lang3.RandomUtils;
import org.junit.Test;/*** lambda借助peek()方法调试*/
public class DebugTest
{@Testpublic void test(){String result = new Random().ints(10, 0, 60).limit(RandomUtils.nextInt(1, 10)).mapToObj(String::valueOf).collect(Collectors.joining("."));System.out.println(result);}}

三、运行结果

18.20.21.56.47.36.13.28.36
51.7.34.37.45.20.9
37.9.10.51.36.59.31.40
6.57.50
30.32.48
51.12.35.48.42.38.55.20
51.47
47.33.49.55.13.9
45.30.56.12.30.25.41

四,问题

现在我想知道,执行过程中,是:
先生成10个满足要求的数据再执行limit操作 还是生成10个满足要求的数据过程中同时判断是否达到limit之后就停止生成

五、调试

我们可以借助Stream的peek()方法,来实现中间过程打印

import java.util.Random;
import java.util.stream.Collectors;import org.apache.commons.lang3.RandomUtils;
import org.junit.Test;/*** lambda借助peek()方法调试*/
public class DebugTest
{@Testpublic void test(){// 会生成10个随机数再limit还是达到limit就不再生成随机数String result = new Random().ints(10, 0, 60).peek(e -> System.out.println(e)) // debug.limit(RandomUtils.nextInt(1, 10)).mapToObj(String::valueOf).collect(Collectors.joining("."));System.out.println(result);}
}

执行结果就不放出来了,各位可自行运行测试!

六、注意点

需要注意的坑

坑一:peek() 不影响流的生成和消费

peek()是一个中间操作,它并不会终止流的处理流程,因此如果不跟一个终端操作(如collect(), forEach(), count()等),则peek()中的操作虽然会被执行,但整个流式处理链的结果不会有任何产出。换言之,只有当流被消耗时,peek()里的操作才会真正发生。

坑二:peek() 的执行次数取决于下游操作

peek()方法中的动作会在流的每个元素上执行一次,但具体执行多少次取决于下游的终端操作。例如,如果你在排序(sorted())前使用了peek(),而在排序后又使用了一次peek(),则同一个元素可能会被两次peek()。

坑三:并发流中的peek()行为

对于并行流,peek()操作的执行顺序没有保证,而且可能会多次执行(取决于JVM的具体调度)。如果你在并行流中依赖peek()的顺序性或唯一性,可能会遇到意想不到的问题。

坑四:资源管理

如果在peek()中打开了一些资源(如文件、数据库连接等),但在peek()内部并未妥善关闭它们,可能会导致资源泄露。因为在没有终端操作的情况下,流可能不会立即执行,资源也就无法及时释放。

坑五:对流元素的修改可能无效

peek()通常用于读取或打印流元素,而不是修改它们。虽然理论上可以尝试在peek()中修改元素,但由于流的惰性求值和可能的不可变性,这样的修改可能不会反映到源集合或后续流操作中。

-over-

http://www.hkea.cn/news/804790/

相关文章:

  • 自建网站平台可以实现哪些功能网络营销这个专业怎么样
  • 佛山新网站制作公司网页制作成品模板网站
  • 校园网站建设的意见企业管理培训课程网课
  • 郑大远程教育动态网站建设seo优化关键词排名
  • 做logo什么网站昆明百度关键词优化
  • 怎样做省钱购物网站sem推广代运营
  • 英文网站开发公司万网阿里云域名查询
  • 做调查问卷网挣钱的网站新闻 今天
  • 网站建设工作小组在线建站平台免费建网站
  • 可以发广告的网站湖南seo推广系统
  • 大丰网站建设哪家好成都seo
  • 学校网站建设项目的wbsseo交流qq群
  • 筑梦网站建设西安百度竞价开户
  • 个体营业执照可以做网站搞推广吗推广网站制作
  • 公共交通公司网站建设方案移动慧生活app下载
  • 国内开源代码网站搜了网推广效果怎么样
  • html5 metro风格网站模板今日新闻事件
  • 网站不在首页显示出来做网络推广
  • 上海网站seo公司网页推广平台
  • 网站服务器租用价格表百度怎么发布自己的广告
  • 经纪人做网站技巧搜索引擎入口yandex
  • 教育网站制作哪家服务好全球外贸采购网
  • 响应式网络网站源码百度关键词查询网站
  • 南京网站制作设计公司网络运营团队
  • 阿里巴巴上怎样做自己的网站seo网站优化网站编辑招聘
  • 网站做付费推广都需要问什么网络热词2022
  • 给男票做网站表白的软件产品市场推广计划书
  • 西安网站制作定制怎么制作自己的个人网站
  • wordpress 如何移动端盐城seo优化
  • asp.net 制作网站开发百度竞价排名软件