当前位置: 首页 > 知识库问答 >
问题:

java中是否有最简单的减少/折叠方法?

冯德佑
2023-03-14

我知道的其他技术(.Net,JS)包含最简单的折叠/缩小操作:

TResult reduce(TResult result, (TResult prevResult, TValue value) -> TResult)

我发现的一个方法要求TValue和TResult是同一类型。另一个需要提供组合2个TResults的二进制操作。这些约束都不符合我的上下文。目前,我的代码如下:

Accumulator acc = someInitialValue;
for(Element element: list) {
    accumulator = reducer(accumulator, element);
}

但是我相信基本方法应该包含在流应用编程接口中。

我也找过收藏家,但没找到有帮助的。

共有1个答案

从智明
2023-03-14

您正在寻找的是Java8中添加的Java流框架。

Stream类有3种reduce方法:

  • 可选

第二个减少方法与您的示例匹配,但需要相同的结果类型。对于不同的结果类型,您需要使用第三个减少方法,这需要一个额外的组合器方法,因为它需要支持并行处理。

它还有2种收集方法

当与收集器工厂类结合使用时,第一个收集方法是最常用的方法。

 类似资料:
  • 问题内容: Java中有没有称为“恒定折叠”的概念?如果是,那是什么? 问题答案: 常量折叠是在编译时简化常量表达式的过程。常量表达式中的术语通常是简单的文字,例如整数2,但也可以是其值从未修改的变量,也可以是显式标记为常量的变量 是的,它存在于Java上:编译器优化

  • 本文向大家介绍js实现简单折叠、展开菜单的方法,包括了js实现简单折叠、展开菜单的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现简单折叠、展开菜单的方法。分享给大家供大家参考。具体如下: 这里介绍的是意乱会折叠、展开的菜单导航栏,很老时候写的,CSS没有做美化,如果想用的朋友就自己美化吧。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js

  • 问题内容: 自从我更新了intelliJ的版本(从14.x到15.x)后,它开始自动在编辑器中折叠单行方法: 先前版本: 最新版本: 有办法防止这种情况吗?我发现原始版本容易上手! 谢谢。 问题答案: 从“文件”菜单中打开“设置”。在“编辑器”->“常规”->“代码折叠”下,您会找到“默认折叠”部分。 只需取消选中“单行方法”,然后单击“确定”。

  • 问题内容: 我想在Java SE中拥有 我必须要做些什么?我在我的项目中使用postgres数据库和maven。 我已经在阅读有关Weld的内容(但看起来只像CDI)。我不知道如何增加焊接实体管理器的可能性。我知道我可以通过获得实体管理器 但它不如注射方便。 如果有关于它的任何教程,那就太好了。无论如何,谢谢您的帮助! 问题答案: 首先,EJB是Java EE的一部分,因此您不能在Java SE中

  • 问题内容: 如果只有timedelta在构造函数中有一个month参数。那么最简单的方法是什么? 编辑: 正如下面所指出的,我对此并没有太认真的思考。我真正想要的是上个月的任何一天,因为最终我将只获得年份和月份。因此,给定一个datetime对象,返回 上个月的任何datetime对象 的最简单方法是 什么 ? 问题答案: 尝试这个: 编辑 更正为也处理一天。 编辑 另请参见困惑的答案,指出了以下