Java流列表<地图<字符串,双>>基于字符串需要平均

Hruday:

我需要在列表的平均

    List<Measurement> measurements = new ArrayList<>();

    Measurement m1 = new Measurement();
    Map<String,Double> map1 = new HashMap<>();
    map1.put("age",18.0);
    map1.put("score",88.0);
    map1.put("rating",5.0);
    m1.setMetric(map1);

    Measurement m2 = new Measurement();
    Map<String,Double> map2 = new HashMap<>();
    map2.put("age",21.0);
    map2.put("score",null);
    map2.put("rating",23.0);
    m2.setMetric(map2);

    Measurement m3 = new Measurement();
    Map<String,Double> map3 = new HashMap<>();
    map3.put("age",31.0);
    map3.put("score",32.0);
    map3.put("rating",null );
    m3.setMetric(map3);

    measurements.add(m1);
    measurements.add(m2);
    measurements.add(m3);

我如何获得地图上面的列表中的平均年龄。通过忽略空值也平均分数。

任何帮助将非常感激。我在努力修复,因为3天。先感谢您。

这本书:

这样的Measurement类:

class Measurement {

    Map<String, Double> map;

    public void setMetric(Map<String, Double> map) {
        this.map = map;
    }
}

如何找到avarage“时代”(使用流):

Double averageAge = measurements.stream()
        .collect(Collectors.averagingDouble(node -> node.map.getOrDefault("age", 0D)));

和流可能为空的“分数”:

如何找到avarage与空检查“年龄”(使用流):

Double averageAge = measurements.stream()
        .filter(node -> node.map.get("score") != null)
        .collect(Collectors.averagingDouble(node -> node.map.getOrDefault("score", 0D)));

在上面的代码中,你有node.map哪里map是场形状类。可以替换getMap()或不同的方法将在返回值(你被设定setMetric()

如何找到avarage“时代”(使用循环):

Double average = 0D;
for (Measurement measure : measurements) {
    average += measure.map.getOrDefault("age", 0D);
}
average /= measurements.size();

如何找到空检查avarage“分数”(使用循环):

Double average = 0D;
int counter = 0;
for (Measurement measure : measurements) {
    if (measure.map.get("score") != null) {
        average += measure.map.getOrDefault("score", 0D);
        counter++;
    }
}
average /= counter;

如何找到空检查最小的“分数”(使用循环):

Double min = Double.MAX_VALUE;

for (Measurement measure : measurements) {
    Double score = measure.map.get("score");
    if (score != null && score < min) {
        min = score;
    }
}

System.out.println(min);

如何找到最大的“时代”(使用流)

Double max = measurements.stream()
        .filter(node -> node.map.get("score") != null)
        .mapToDouble(node -> node.map.get("score"))
        .max()
        .orElse(0.0);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java的8流,对象的转换列表地图<字符串,将<字符串>>

如何名单<人>转换地图<字符串,列表<双>>,而不是地图<字符串,列表<人>>?

收集列表<对象>地图<字符串,列表<对象>>中的Java 8中使用流

如何将一个POJO的列表转换地图<字符串,列表>在Java流?

Java的8个流地图<字符串,列表<字符串值>>为每个关键总和

减少地图(地图(地图(列表(字符串))))地形

Java的8个流 - 查找最大计数值地图<字符串,列表<对象>>

创建使用Java 8流API字符串和排序列表中的地图

Java8流列表<地图<字符串,对象>> groupingBy和计数值

地图<字符串,地图<字符串,租车>>到列表<汽车>使用Java 8

Java的8炼油LAMBDA地图<字符串,列表<字符串>>将字符串地图关键要求

Java的8 STREM过滤图在地图 - 地图<字符串,地图<字符串,员工>>

Java的8流列表<美孚>地图<日期,地图<字符串,龙>>有条件groupingBy

拼合一个地图<整数,列表<字符串>>地图<字符串,整数>用流和lambda

如何创建列表<T>地图<字符串,T>而不是地图<字符串,列表<T >>?

Java类扩展的HashMap <字符串,地图<字符串,列表<字符串>>重写方法放不工作

迭代虽然地图<字符串,列表<对象的内容>>和分配列表<对象的值>成单独的列表<双>

JAVA 双转字符串格式

指定所有值在集<字符串>的地图<String,字符串>与流

如何收集地图<字符串,列表<字符串>>将acheve该列表排序?

Collectors.groupby的地图<字符串,列表<字符串>

地图字符串数组列表获取键和值

名单<地图<String,字符串>> VS列表<OBJECT>

将字符串转换为地图列表

在Scala中反转地图(字符串->列表)

Dart 解析字符串包含地图列表

转换的List <String>的地图<字符串,字符串>在Java中

转换字符串地图<整数,字符串>在Java 8

Java的8:如何字符串转换为地图<String,字符串>?