对象和索引流

我本来要写一篇关于如何将流与每个元素的索引混合的文章,但是Baeldung上的人们已经很好地涵盖了这个主题 ! 鉴于我是他们编辑团队的一员,我为他们/我们感到自豪。

有趣的是,特别是Streams中的Java函数式编程如何使我们脱离了一些常见的模式。 例:

List<Foo> foos = new ArrayList<>();
for (int i=0; i < bars.size(); i++) {foos.add(new Foo(i, bars.get(i));
}

上面的代码从索引创建一个新的Foo ,从源列表创建一个bar

Stream.collect是一个更大的信号,我们要从迭代中提取数据时,我们不喜欢在for循环中间使用add 。 同样,当我们可以在流声明中更明确地表示有效的Stream.map时,我们不希望将其隐藏在循环中。 我们都知道以上内容应读为:

List<Foo> foos = bars.stream().map( ... something ...).collect(toList());

尴尬的挑战是某些事情不容易完成。

如何选择做什么

总体而言,围绕流操作编写复杂的功能清单是一种隐藏流要向我们展示的东西的方法,即,数据如何从一个地方转到另一个地方。

所以这是一些想法:

  • 也许只有一个for循环–可能会更容易
  • 如果您发现操作主体中的主要参与者是索引,那么请进行一系列索引,并在最后一分钟将对象与List.get混合,假设您的列表已被有效索引
  • 如果主要玩家是一个对象,则可以存储一个计数器( AtomicInteger是一个不错的选择)并在最后一刻增加它,注意排序和并行流
  • 如果代码变得复杂,请尝试通过提取函数来将流逻辑与业务逻辑分离
  • 也许将其委托给一个图书馆-Baeldung的文章展示了ProtonPack和其他可能更好的东西,它们已经过测试和记录。

无论您做什么,都不要从原则上使自己变得困难。

翻译自: https://www.javacodegeeks.com/2019/08/object-index-streams.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCM复用设备主要传输什么业务?

PCM即脉冲编码调制&#xff0c;在通信系统中完成将语音信号数字化功能。PCM的实现主要包括三个步骤完成&#xff1a;抽样、量化、编码。分别完成时间上离散、幅度上离散、及量化信号的二进制表示。 1、 抽样&#xff1a;所谓抽样&#xff0c;就是对模拟信号进行周期性扫描&…

Pcm设备2M通道,E1的基础知识介绍

Pcm设备2M通道在业内常简述为E1&#xff0c;E1这个词在通信行业起着非常重要的作用&#xff0c;相信刚接触这个词的人必定会感到陌生。接下来就由飞畅科技的小编来为您详细的介绍一下E1的基础知识。 一、E1概述 E1是ITU-T制定并由欧洲邮政与电信协会&#xff08;CEPT&#xff…

数据结构栈的知识_数据知识栈

数据结构栈的知识并发不适合胆小者 我们都知道并发编程很难正确实现。 这就是为什么在执行线程任务之后要进行大量的设计和代码审查会议。 您永远不会将并发问题分配给经验不足的开发人员。 仔细分析问题空间&#xff0c;提出设计&#xff0c;并记录和审查解决方案。 这就是通…

PCM设备E1保护切换功能介绍

脉冲编码调制&#xff08;PulseCodeModulation&#xff09;&#xff0c;简称PCM。是对连续变化的模拟信号进行抽样、量化和编码产生的数字信号。PCM的优点就是音质好&#xff0c;缺点就是体积大。PCM可以提供用户从2M到155M速率的数字数据专线业务&#xff0c;也可以提供话音、…

在Eclipse中使用Java 12

1.安装JDK 12 链接&#xff1a; https &#xff1a; //www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html 2.安装Eclipse 4.11 链接&#xff1a; https &#xff1a; //download.eclipse.org/eclipse/downloads/drops4/R-4.11-201903070500 …

PCM设备的作用,为什么要选用PCM设备?

PCM设备在通信系统中是利用E1&#xff08;2M&#xff09;线路进行传输多种业务数据的基群设备。但是不少用户在开始使用之前&#xff0c;并不能确定PCM能否满足他的需求&#xff0c;也不清楚有PCM这样的一个名词。接下来飞畅科技的小编来为大家介绍下PCM设备的作用&#xff0c;…

RS485光纤中继器有哪些优缺点?

信号在传输过程中会不断衰减&#xff0c;为了不让信号衰减对通信产生影响&#xff0c;产生了中继器。仅做放大信号用&#xff0c;把信号传导偏远的地方。 中继器又被称为转换器或放大器&#xff0c;执行物理层协议&#xff0c;负责第一层&#xff08;物理层&#xff09;的数据中…

intellij注释模板_IntelliJ中的实时模板

intellij注释模板如上所述这里 &#xff0c;的IntelliJ的现场模板可以让你轻松地插入预定义的代码片段到你的源代码。 我在下面发布了一些我最常用的模板&#xff0c;链接到我在GitHub上的模板文件的完整列表&#xff08;作为设置新IntelliJ环境时的参考&#xff09;&#xff…

485转换器产品功能特点及技术参数介绍

485转换器主要的作用是将单端的RS-232信号转换为平衡差分的RS-485或RS-422信号。RS-485、RS-422自动识别功能&#xff0c;使用更加简单。接下来就由飞畅科技的小编来为大家详细介绍下485转换器的产品功能特点及技术参数&#xff0c;一起来看看吧&#xff01; 485转换器产品特点…

无浪费编码

本文介绍了如何通过减少软件堆栈中的浪费来高效解决有意义的事件处理问题。 Java通常被视为无法在低内存环境中高效运行的内存猪。 目的是证明许多人认为不可能的事情&#xff0c;有意义的java程序几乎可以在没有内存的情况下运行。 示例流程 在Java的单个线程上&#xff0c;…

485光纤转换器产品分类介绍

485转换器用于点对点、点对多点通讯、工业控制自动化、道路交通控制自动化、智能卡、考勤、门禁、售饭系统、工业集散分布系统、闭路监控、安防系统、POS系统、楼宇自控系统、自助银行系统。接下来就由飞畅科技的小编来为大家详细介绍下485转换器的分类&#xff0c;一起来看看吧…

RS232与串口通信的4个注意事项详解

RS232和串口通信&#xff0c;用于串口设备的数据采集软件&#xff0c;包括仪表、天平、秤或任何RS232仪器。WinWedge直接将数据捕获到Excel、Access或任何Windows应用程序或网页。它甚至可以从COM端口发送命令&#xff0c;因此您可以通过热键&#xff0c;按钮或DDE控制您的设备…

RS485集线器知识详解

集线器的英文名称就是我们通常见到的“HUB”&#xff0c;英文“HUB”是“中心”意思&#xff0c;集线器的主要功能是对接收到的信号进行再生整形放大&#xff0c;以扩大网络的传输距离&#xff0c;同时把所有节点集中在以它为中心的节点上。 集线器工作原理 它工作于OSI参考模…

HttpMate简介

没有人愿意编写不良代码。 没有人会想到“我要创建最纠结和最不可读的代码&#xff0c;并确保它不可扩展且难以修改或浏览”&#xff0c;从而开始了应用程序开发。 首先要有良好的意愿&#xff0c;甚至可能要牢记所有Clean Code和SOLID原则。 但是&#xff0c;折衷方案通常以所…

rs485转rs232串口转换器常见的故障剖析

在实际应用中&#xff0c;rs485串口、rs232串口可能会用于同一个传输线路上&#xff0c;但这两个接口的电气特性不一致&#xff0c;数据不能从这两个串口中相互传输或是rs232串口功能不足需要额外用到rs485串口&#xff0c;这两种情况都可以使用rs485转换器。 rs485转rs232串口…

TDMoverIP是什么?tdmoverip产品特性介绍

tdmoverip伪线路仿真产品&#xff0c;也称为IP电路仿真器或反向网桥。接下来就由飞畅科技的小编来为大家详细讲解下TDMoverIP及其产品特性&#xff0c;一起来看看吧&#xff01; tdmoverip简介 该系列基于TDM over IP技术&#xff0c;实现端到端电路仿真(PWE3)&#xff0c;符合…

java用i/o查看文件_Java文件I / O基础

java用i/o查看文件Java 7引入了java.nio.file包&#xff0c;以提供对文件I / O的全面支持。 除了许多其他功能之外&#xff0c;该软件包还包括Files类&#xff08;如果您已经使用此类&#xff0c;则可以在这里停止阅读&#xff09;。 文件包含许多静态方法&#xff0c;可在处理…

PCM复用设备和PDH设备的区别介绍

首先PCM设备和PDH设备是完全不同的两者设备。PCM是综合业务接入设备&#xff0c;PDH设备是光传输设备。接下来就由飞畅科技的小编来为大家详细介绍下PCM复用设备和PDH设备的区别&#xff0c;一起来看看吧&#xff01; 数字信号是对连续变化的模拟信号进行抽样、量化和编码产生…

定义资源

在Fielding的论文中 &#xff0c;资源被描述为&#xff1a; “可以命名的任何信息”……“文档或图像&#xff0c;临时服务&#xff08;例如&#xff0c;“洛杉矶今天的天气”&#xff09;&#xff0c;其他资源的集合&#xff0c;非虚拟对象&#xff08;例如&#xff0c;人&am…

E1 PCM复用设备能当程控交换机用吗?

E1 PCM复用设备能当程控交换机用吗&#xff1f;这个问题在平时与用户沟通中发现&#xff0c;发现有不少用户认为E1 PCM复用设备可以当程控交换机使用&#xff0c;不仅能实现电话线远端延伸&#xff0c;还可以实现电话机交换功能。 其实这个观点是错误的&#xff0c;E1 PCM复用…