Я новичок в Java 8
и нашел несколько способов сделать addition
, multiply
и subtraction
.Я буду публиковать вопрос только для добавления.
Я написал код ниже и собираю вывод в Sum1 и Sum2.Оба метода reduce(0, Integer::sum)
и .reduce(0, (a, b) -> a+b);
дают одинаковый результат.Каков наилучший метод для повышения производительности, если используются большие целочисленные значения и почему?
List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
Integer sum1 = numbers.stream().reduce(0, (a, b) -> a+b);
System.out.println("SUM ="+sum1);
Integer product = numbers.stream().reduce(0, (a, b) -> a*b);
System.out.println("PRODUCT = "+product);
int sum2 = numbers.stream().reduce(0, Integer::sum);
System.out.println("SUM 2= "+sum2);
Optional<Integer> sum3 = numbers.stream().reduce((a, b) -> (a + b));
System.out.println("SUM3="+sum3);
// Updated as per @Hadi J comment
int sum4 = numbers.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum ="+sum4);