对HashMap java的绝对值求和

use*_*xyz 5 java hashmap

在对这张地图求和之前,如何将双精度值转换为正数。换句话说,在获得总数之前试图获得绝对值的总和。

Map<String,Double> map = new HashMap<>();
map.put("CAT",-9.3);
map.put("BYTE", 15.6);
map.put("JOB", -11.66);
map.put("VIS", 8.0);


double TotalAbs = map.values().stream()
                         .mapToDouble(w -> w)
                         .sum();
Run Code Online (Sandbox Code Playgroud)

试图对双打的绝对值求和 ==> 答案应该是 44.56 而不是 2.64。
请单击此处获取 Excel 中的图像 请帮忙。谢谢。

DEV*_*DEV 8

你可以试试Math.abs。它会将负数转换为正数。

double totalAbs = map.values().stream()
                             .mapToDouble(w -> Math.abs(w))
                             .sum();
Run Code Online (Sandbox Code Playgroud)