jjzjj

java - Java 8 中 Haskell 的 foldr 等价物

这个问题在这里已经有了答案:HowtoreducegivenlistbyusingLambdaexpression.reduce()method(2个答案)关闭7年前。我们习惯了foldr在Haskell中你使用(例如,使用Java语法)aList并返回所需的任何类型(、List等)。例如在Haskell中,这个函数接受List并返回另一个List并用作累加器aList(只是一个例子,函数的目标无关紧要):evens::[Integer]->[Integer]evens=foldr(\xacc->ifmodx2==0thenx:accelseacc)[]现在Java8已经推出并具有函数

java - 执行 map-reduce 操作的通用方法。 (Java-8)

如何在Java8中使用泛型参数重载函数?publicclassTest{Listlist=newArrayList();publicintsum(Functionfunction){returnlist.stream().map(function).reduce(Integer::sum).get();}publicdoublesum(Functionfunction){returnlist.stream().map(function).reduce(Double::sum).get();}}Error:java:nameclash:sum(java.util.function.Fun

java - Stream reduce() 要求到底包含什么?

在并行流上使用reduce()操作时,theOCPexambook说明reduce()参数必须遵守某些原则。这些原则如下:Theidentitymustbedefinedsuchthatforallelementsinthestreamu,combiner.apply(identity,u)isequaltou.Theaccumulatoroperatoropmustbeassociativeandstatelesssuchthat(aopb)opcisequaltoaop(bopc).Thecombineroperatormustalsobeassociativeandstatele

HashMap 上的 Java 8 Map Reduce 作为 lambda

我有一个String并想替换其中的一些单词。我有一个HashMap,其中键是要替换的占位符,值是要替换它的词。这是我的老派代码:privateStringreplace(Stringtext,Mapmap){for(Entryentry:map.entrySet()){text=text.replaceAll(entry.getKey(),entry.getValue());}returntext;}有没有办法将这段代码写成lambda表达式?我尝试了entrySet().stream().map(...).reduce(...).apply(...);但无法正常工作。提前致谢。

java - Reduce Integer.min 不返回最低元素

我正在对streamreduce进行一些研究,并尝试运行这个非常简单的程序。为什么Integer.min不像Integer.min返回最大数那样返回最小值?publicclassReducing{publicstaticvoidmain(String[]args){Listnumbers=Arrays.asList(3,4,5,1,2);Integersum=numbers.stream().reduce(0,(a,b)->a+b);System.out.println("REDUCE:"+sum);intsum2=numbers.stream().reduce(0,Integer::

对象数组的Java Stream Reduce

我有一个包含2个对象的数组列表:List其中object[0]是一个整数,object[1]是一个字符串。如何流式传输列表并对每个对象应用不同的函数?因此,结果将是一个数组:result[0]=multiplicationofallobject[0]result[1]=concatenationofallobject[1] 最佳答案 您可以使用reduce()实现此目的:publicvoidtestStacko(){Listlist=newArrayList();list.add(newObject[]{1,"foo"});list

java - Reducer setup() 的 Mapper 是做什么用的?

设置和清理方法究竟用于什么?我试图找出它们的意思,但还没有人准确描述它们的作用。例如,设置方法如何使用来自输入拆分的数据?它把它当作一个整体吗?还是逐行? 最佳答案 如前所述,setup()和cleanup()是您可以重写的方法,如果您选择的话,它们可用于初始化和清理您的映射/reducetask。在这些阶段,您实际上无法直接访问来自输入拆分的任何数据。map/reduce任务的生命周期是(从程序员的角度来看):设置->map->清理设置->减少->清理在setup()期间通常发生的事情是您可以从配置对象中读取参数以自定义您的处理逻

Java流减少

我有以下示例数据集,我想根据方向值使用Javastreamapi转换/减少Directionint[]IN1,2OUT3,4OUT5,6,7IN8IN9IN10,11OUT12,13IN14到Directionint[]IN1,2,OUT3,4,5,6,7IN8,9,10,11OUT12,13IN14到目前为止我写的代码enumDirection{IN,OUT}classTuple{Directiondirection;int[]data;publicTuplemerge(Tuplet){returnnewTuple(direction,concat(getData(),t.getDa

java - 有没有一种优雅的方法可以将 map 流减少到一张 map

给定一些map,是否有一种单行方法可以将它们的所有条目放入一张map中?忽略空值、覆盖条目等问题,我想编写的代码是:publicstaticMapreduce(Map...maps){returnArrays.stream(maps).reduce(newHashMap(),(a,b)->a.putAll(b));}但这会产生编译错误,因为a.putAll(b)是void。如果它返回this,它就可以工作。为了解决这个问题,我编写了代码:publicstaticMapreduce(Map...maps){returnArrays.stream(maps).reduce(newHashM

vue使用es的reduce方法编译报错Error: Can‘t resolve ‘core-js/modules/es.array.reduce.js‘

哈喽大家好啊最近在vue使用es的reduce方法编译报错Error:Can'tresolve'core-js/modules/es.array.reduce.js报错如图所示:解决方案:npminstall--savecore-js然后重新编译下将正常了参考原文:使用import异步加载语法报错_modulenotfound:error:can'tresolve'core-js/mo-CSDN博客