Я пытаюсь вычислить сумму квадратов значений в списке. Ниже приведены три варианта, которые все вычисляют требуемое значение. Я хочу знать, какой из них наиболее эффективен. Я ожидаю третьего чтобы быть более эффективным, поскольку автоматический бокс выполняется только один раз.
// sum of squares
int sum = list.stream().map(x -> x * x).reduce((x, y) -> x + y).get();
System.out.println("sum of squares: " + sum);
sum = list.stream().mapToInt(x -> x * x).sum();
System.out.println("sum of squares: " + sum);
sum = list.stream().mapToInt(x -> x).map(x -> x * x).sum();
System.out.println("sum of squares: " + sum);