作者:手机用户2602930515 | 来源:互联网 | 2022-12-27 15:42
1> dnswlt..:
您无法获得这样的条目,因为平均值甚至不需要是地图中的值.
例如,在地图中
{"A": 1, "B": 2}
平均值将是1.5
,这不是地图的值.在这种情况下,您希望获得哪个条目?
您可以做的是找到最接近平均值的第一个条目,如下所示:
Map m = new HashMap<>();
m.put("A", 1);
m.put("B", 2);
m.put("C", 4);
// First, compute average
double average = m.values().stream().mapToDouble(Integer::doubleValue).average().orElse(0);
// Then, find entry closest to average
Map.Entry e = m.entrySet().stream()
.min(Comparator.comparing(a -> Math.abs(a.getValue() - average)))
.orElse(null);