Почему я могу вызвать average()
метод для одного, но не для другого? Разве они не должны быть эквивалентными?
пример 1 - работает
List<String> stringList = new ArrayList<>();
stringList.add("2");
stringList.add("4");
stringList.add("6");
// String array ("2","4", "6"
averageValue = stringList.stream()
.mapToInt(s -> Integer.valueOf(s))
.average()
.getAsDouble();
пример 2 - не компилируется (удален вызов mapToInt, потому что уже передается поток Integer)
List<Integer> IntegerList = new ArrayList<>();
IntegerList.add(2);
IntegerList.add(4);
IntegerList.add(6);
averageValue = IntegerList.stream()
.average()
.getAsDouble();
Вопрос, зачем мне вызывать метод mapToInt, когда я уже передаю ему поток целых чисел?