Я читал об уменьшении и только что обнаружил, что существует версия с тремя аргументами, которая может по существу выполнить уменьшение карты следующим образом:
String[] strarr = {"abc", "defg", "vwxyz"};
System.out.println(Arrays.stream(strarr).reduce(0, (l, s) -> l + s.length(), (s1, s2) -> s1 + s2));
Однако я не вижу преимуществаэтого по mapToInt с уменьшением.
System.out.println(Arrays.stream(strarr).mapToInt(s -> s.length()).reduce(0, (s1, s2) -> s1 + s2));
Оба дают правильный ответ 12, и оба, кажется, работают нормально параллельно.
Один лучше, чем другой, и еслиитак, почему?