在JAVA中,使用流API根据两种不同的条件将数据流拆分为不同的列表
我有一份双份(温度)的清单。说: 1.0,2.0,3.0,4.0,20.0 我需要编写一个函数在JAVA中,使用流API根据两种不同的条件将数据流拆分为不同的列表,java,java-8,java-stream,Java,Java 8,Java Stream,我有一份双份(温度)的清单。说: 1.0,2.0,3.0,4.0,20.0 我需要编写一个函数countTemperatures(t1,t2,range),该函数应该打印一个包含两对的列表:1)温度t1与区间[t1-r..t1+r]中的温度测量次数配对,2)温度t2与区间中的温度测量次数配对[t2-r..t2+r]已测量 示例:CountTemperations(17.0,10.0,2.0)应返回列表((17.0,5),(10.0,5))(因为在17.0-2.0(15)和17.0+2.0(19)
countTemperatures(t1,t2,range)
,该函数应该打印一个包含两对的列表:1)温度t1与区间[t1-r..t1+r]中的温度测量次数配对,2)温度t2与区间中的温度测量次数配对[t2-r..t2+r]已测量
示例:CountTemperations(17.0,10.0,2.0)应返回列表((17.0,5),(10.0,5))(因为在17.0-2.0(15)和17.0+2.0(19)之间的范围内总共有5个测量值。即,第二对中的15,16,17,18,19。类似
我需要演示MapReduce(没有任何框架),并且只使用Java8流
我得出了以下结论:
## List<Double> temperature = [1.0, 2.0, 3.0, ......, 20.0]
List<Double> temp = temperature.stream()
.collect(Collectors.groupingBy(t -> t>=(t1-r) && t<=(t1+r)));
System.out.println(temp.get(true));
##列出温度=[1.0,2.0,3.0,…,20.0]
列表温度=温度。流()
.collect(collector.groupingBy(t->t>=(t1-r)和&t也许你想要这个
公开课考试{
公共静态void main(字符串[]args){
List tmps=new ArrayList();
for(double i=1.0;i=(param.get(finalI)-param.get(2))&&
(双分组依据
或分区依据
是正确的开始。看看它们返回的类型。为什么需要流?计数不总是等于(2*范围)+1
?为什么不将温度
流两次和计数
相应的tn
范围的出现次数?countTemperatures只使用两个温度参数,但您有一个列表,我不同步这两个参数。双倍列表
和countTemperatures(t1,t2,range)
如何从列表中选择两个温度
[[17.0, 5.0], [10.0, 5.0]]