当前位置: 首页 > 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.yayakq.cn/news/811685/

相关文章:

  • 西安网站建设网络推广wordpress+企业站模版
  • php网站开发个人职责免费咨询在线律师
  • php网站框架wordpress远程安装教程
  • 家庭宽带 做网站沈阳公司网站
  • 浙江省建设信息港的网站wordpress扁平模板下载
  • 上海行业门户网站建设工具门窗网站建设
  • 做一个人网站需要注意什么做网站 图片显示不出来
  • 网站建设公司诺玺网络开原铁岭网站建设
  • 做网站哪家服务器好包头建网站公司哪家强
  • 网站建设收费标准不一天眼查在线查询系统
  • .net网站开发流程北京建网站找哪个公司
  • 网站建设概要设计怎么写山东省工程造价信息网官网
  • 松江网站建设公司婚纱网站开发的必要性
  • 网站制作公司汉狮网络个人网站建设作用
  • 石家庄市建设网站高端网站建设设计公司有哪些
  • 大兴德艺网站建设网站怎么挂广告
  • 做h的动漫在线观看网站建设网站建站
  • 响应式网站和营销型网站网页设计制作课程表
  • 仿站软件ps临摹图片做网站的图片犯法吗
  • 洛阳酒店网站开发大全网站定位授权开启权限怎么做
  • 网站建设开发徐州网站二次开发
  • 如何快速模仿一个网站最新上市新手机
  • 神华集团两学一做登陆网站单位如何做网站宣传
  • 班级网站模板下载如何开设一个网站
  • 数据分析网站开发宁波网站排名优化费用
  • 河北省住房和城乡建设厅 网站建设银行网站色调
  • 可以和朋友合资做网站吗吉安网站建设公司
  • 网站改名 备案西安网站制作模板
  • 网页设计作品集优化系统是什么意思
  • 福建建设工程设计备案网站免费logo设计网址