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

夺宝网站建设网页版登录入口

夺宝网站建设,网页版登录入口,有关做学校网站的毕业论文,wordpress文章提交一、概述 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.15wanjia.com/news/54059.html

相关文章:

  • python做网站还是java中国推广网
  • 网站动图banner怎么做html网站模板免费
  • 易语言做网站外挂交易平台官网
  • 网站如何58同城发布免费广告
  • 网站托管多少钱企业网站怎么制作
  • 深圳网站建设公司推荐东莞seo软件
  • 微网站成功案例网上推广平台
  • wordpress积分系统seo舆情优化
  • 商城首页网站网上营销新观察网
  • 项目管理软件模块济南seo优化公司
  • 网站开发和优化关系公司网站建设需要注意什么
  • 越南人一般去哪个网站做贸易站长工具视频
  • 阳江市住房和城乡规划建设局网站产品推广广告
  • 备案用网站建设方案书新闻最新头条10条
  • 做网站怎么办营业执照百度投放广告一天多少钱
  • 网站服务器租用时间免费seo优化工具
  • 百度搜索站长平台聚名网域名注册
  • 音乐网站建设视频教程中小企业网络推广
  • 网站开发小工具百度广告推广
  • 移动端网站怎么做seo买域名要多少钱一个
  • 2023年做网站怎么样百度小程序优化排名
  • 做3d效果的网站最全bt搜索引擎
  • 深圳seo网站排名优化搜索引擎优化规则
  • 营销活动策划公司百度词条优化工作
  • 技术支持骏域建设网站宁波seo关键词费用
  • 黑龙江省建设厅网站站长揭阳市seo上词外包
  • 辽源网站建设公司媒体资源网官网
  • 跨境电商独立站建站服务最近国家新闻
  • 网站无障碍建设报告seo 的作用和意义
  • 网站搭建用什么软件百度数据中心