Java Map<String,String[]> 如何对值求和

Paw*_*zuk 0 java java-8 java-stream

我有这样一个地图,Map<String,String[]>我想总结它的值,值是字符串表,我知道它们是数字。请告诉我如何使用流来做到这一点。我试过了 :

Map<String, String[]> map = new HashMap<>();
int sum = map.values().stream().mapToInt(Integer::parseInt).sum();
Run Code Online (Sandbox Code Playgroud)

Dea*_*ool 5

在问题中map.values()返回Setof String[],你应该

1)首先流式传输 Set<String[]>

2)然后转换String[]为数组流,字符串转换为int

int sum = map.values()
             .stream()
             .flatMap(Arrays::stream)
             .mapToInt(Integer::intValue)
             .sum();
Run Code Online (Sandbox Code Playgroud)