Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Dictionary {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, List<String>> wordsAndDefinitions = new TreeMap<>();
- String[] line = scanner.nextLine().split(" \\| ");
- for (int i = 0; i < line.length; i++) {
- String[] wordsAndDefinition = line[i].split(": ");
- String word = wordsAndDefinition[0];
- String definition = wordsAndDefinition[1];
- wordsAndDefinitions.putIfAbsent(word, new ArrayList<>());
- List<String> temp = wordsAndDefinitions.get(word);
- if (!temp.contains(definition)) {
- temp.add(definition);
- }
- }
- String[] searchedWords = scanner.nextLine().split(" \\| ");
- for (int i = 0; i < searchedWords.length; i++) {
- if (wordsAndDefinitions.containsKey(searchedWords[i])) {
- System.out.println(searchedWords[i]);
- List<String> temp = wordsAndDefinitions.get(searchedWords[i]);
- Collections.sort(temp, Comparator.comparing(String::length));
- Collections.reverse(temp);
- for (int j = 0; j < temp.size(); j++) {
- System.out.println(" -" + temp.get(j));
- }
- }
- }
- String command = scanner.nextLine();
- if (command.equals("List")) {
- wordsAndDefinitions
- .entrySet()
- .stream()
- .sorted((e1, e2) -> e1.getKey().compareTo(e2.getKey()))
- .forEach(e -> System.out.print(String.format("%s ", e.getKey())));
- } else if (command.equals("End")) {
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement