У меня есть текстовый файл списка слов, я хочу получить минимальные, максимальные и средние длины слов из этого файла.
У меня есть метод потока:
public static Stream<String> readWords(String filename) {
try {
BufferedReader reader = new BufferedReader(new FileReader(filename));
Stream<String> stringStream = reader.lines();
return stringStream;
} catch (IOException exn) {
return Stream.<String>empty();
}
}
В моем основном методе тестирования я печатаю max и min
System.out.println(readWords(filename)
.min(Comparator.comparing(s -> s.length()))
.get()
.length()
);
System.out.println(readWords(filename)
.max(Comparator.comparing(s -> s.length()))
.get()
.length()
);
работает как ожидалось.
Вопросы:
Можно ли получить среднее значение длины слова, как в минуту и макс? В обоих случаях да или нет, как это сделать (только как выражение Лямбды)?