假设我有一个类的List
,每个类都有一个Map
。
public class Test {
public Map<Long, Integer> map;
}
Map
中的Long
键是时间戳,Integer
值是分数。
我试图创建一个Stream
,它可以组合所有对象的地图,并输出带有唯一时间戳(TheLong
s)和平均分数的Map
。
我有这个代码,但它给我所有分数的总和,而不是平均值(整数
类没有平均值方法)。
Test test1 = new Test();
test1.map = new HashMap() {{
put(1000L, 1);
put(2000L, 2);
put(3000L, 3);
}};
Test test2 = new Test();
test2.map = new HashMap() {{
put(1000L, 10);
put(2000L, 20);
put(3000L, 30);
}};
List<Test> tests = new ArrayList() {{
add(test1);
add(test2);
}};
Map<Long, Integer> merged = tests.stream()
.map(test -> test.map)
.map(Map::entrySet)
.flatMap(Collection::stream)
.collect(
Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
Integer::sum
)
);
System.out.println(merged);
我想这可能不是一个简单的问题,所以在一个单一的Stream
中解决,所以一个带有唯一时间戳的Map
和所有分数的List
的输出也可以。然后我可以自己计算平均值。
Map<Long, List<Integer>>
它它可能吗?
代替Collectors.toMap
使用Collectors.groupingBy
:
Map<Long, Double> merged = tests.stream()
.map(test -> test.map)
.map(Map::entrySet)
.flatMap(Collection::stream)
.collect(
Collectors.groupingBy(
Map.Entry::getKey,
Collectors.averagingInt(Map.Entry::getValue)
)
);
哦,即使你可能不再需要它了,你也可以得到<代码>地图
Map<Long, List<Integer>> merged = tests.stream()
.map(test -> test.map)
.map(Map::entrySet)
.flatMap(Collection::stream)
.collect(
Collectors.groupingBy(
Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())
)
);
假设我们有一个DF,其受尊重的用户ID中有重复项,但名称不同,当然也可以是重复项。 目的是分别聚合和计算用户ID及其名称的均值和均方差。一个所需的输出示例: 因此我的问题是: 有哪些选项可以根据UserID聚合Names,而不会丢失信息(Hank被强制插入Ed等,就像sumise()或mutate()一样) 按照我的想法,R必须检查哪个名称对应于用户ID,以及是否匹配;汇总并计算平均值 与此同时,
我试图做以下java分配和每件事似乎工作正常,除了当我把一个数字 谢谢 赋值:创建一个询问考试结果并计算成绩平均值的程序。成绩是4到10之间的浮点数。程序要求成绩,直到键入负数。如果用户给出的分数不是4到10之间的数字,则文本“无效成绩!”将在屏幕上打印,程序要求另一个分数。最后,程序在屏幕上打印输入的成绩数及其平均值,如示例打印所示。如果没有输入成绩,通知“您没有输入任何成绩。”是屏幕上唯一打印
我想合并两个地图与JAVA 8流: 我尝试使用以下实现: 但是,此实现只会产生如下结果:
问题内容: 我得到了一个带有2列值的.txt文件。它们是2D坐标,因此第一列代表x值,第二列代表z值。不幸的是,有些行具有相同的x值但具有不同的z值。我想计算z值的平均值,以便将单个z与单个x关联。我所拥有的一个样本是: 如您所见,x值435.212与4个不同的z值相关联。我想拥有的是: 其中108.8985是(108.894 + 108.897 + 108.9 + 108.903)/ 4的结果。
问题内容: 编辑:我已经写了平均的代码,但我不知道如何使它也使用从我的args.length而不是数组的整数 我需要编写一个Java程序,该程序可以计算:1.读入的整数数2.平均值-不必是整数! 注意!我不想从数组中计算平均值,但是要在args中计算整数。 目前我已经写了这个: 谁能指导我正确的方向?还是举个例子,以书面形式指导我塑造这段代码? 提前致谢 问题答案: 只需对您的代码进行一些小的修改
所有人。我在尝试合并两个映射时遇到了这个问题。IDE显示编译错误: 不能从静态上下文引用非静态方法 问题是,我需要将它们合并成一个新的,以不同的参数作为值,在这种情况下,我需要计算第一个映射的和第二个映射的LocalDateTime之间的差值,因此结果应该是 在行中还有一个,因为IDE认为value1和value2属于对象类型,而不是临时类型。这很奇怪,因为以前我在结果映射中选择了不正确的参数类型