diff --git a/10-java-functional-stream/task04/src/com/example/task04/Task04Main.java b/10-java-functional-stream/task04/src/com/example/task04/Task04Main.java index 5d1a5dff3..4c4b8fc56 100644 --- a/10-java-functional-stream/task04/src/com/example/task04/Task04Main.java +++ b/10-java-functional-stream/task04/src/com/example/task04/Task04Main.java @@ -1,11 +1,24 @@ package com.example.task04; -public class Task04Main { - - public static void main(String[] args) { - - // your implementation here +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.Map; +import java.util.function.Function; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; +public class Task04Main +{ + public static void main(String[] args) + { + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + Pattern pattern = Pattern.compile("[^a-zа-яё0-9]"); + Stream stream = in.lines().flatMap(line -> pattern.splitAsStream(line.toLowerCase())); + Map map = stream.collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + map.entrySet().stream().filter(s -> !s.getKey().equals("")) + .sorted(Map.Entry.comparingByValue().reversed() + .thenComparing(Function.identity(), Map.Entry.comparingByKey())) + .limit(10).forEachOrdered(entry -> System.out.print(entry.getKey() + "\n")); } - }