Как использовать здесь метод chaining? Нужно решить это без создания полей, не разрывая цепочки методов

Рейтинг: 0Ответов: 2Опубликовано: 07.01.2023
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()));
}

Ответы

Ответов пока нет.