Как использовать здесь метод chaining? Нужно решить это без создания полей, не разрывая цепочки методов
public static void main(String[] args) {
Pattern selectWords = Pattern.compile("[^a-zA-Zа-яА-я0-9]+");
Scanner sc = new Scanner(System.in, "UTF-8").useDelimiter(selectWords);
List<String> buf = new ArrayList<>();
while (sc.hasNext()) {
buf.add(sc.next());
}
Stream<String> words = buf.stream();
Map<String, Long> frqWords = words.map((s) -> s.toLowerCase())
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Stream<Map.Entry<String, Long>> output = frqWords.entrySet().stream();
output.sorted(Comparator.comparing((Map.Entry<String, Long> e) -> e.getKey()))
.sorted(Comparator.comparing((Map.Entry<String, Long> e) ->
e.getValue()).reversed())
.limit(10)
.forEach((Map.Entry<String, Long> e) -> System.out.println(e.getKey()));
}
Источник: Stack Overflow на русском