ilianrusev

Maps, Lambda and Stream API - Exercise - Company Users

Mar 19th, 2019
105
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5.  
  6. public class Main {
  7.  
  8.     public static void main(String[] args) {
  9.  
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         String input = "";
  13.         Map<String, List<String>> information = new LinkedHashMap<>();
  14.  
  15.         while (!"End".equals(input = scanner.nextLine())){
  16.  
  17.             String[] data = input.split("->");
  18.             String companyName = data[0];
  19.             String employeeId = data[1];
  20.  
  21.             if (!information.containsKey(companyName)){
  22.                 information.put(companyName,new ArrayList<>());
  23.                 information.get(companyName).add(employeeId);
  24.             }else {
  25.                 if (!information.get(companyName).contains(employeeId)){
  26.                     information.get(companyName).add(employeeId);
  27.                 }
  28.             }
  29.         }
  30.  
  31.         information.entrySet()
  32.                 .stream()
  33.                 .sorted((a,b) -> a.getKey().compareTo(b.getKey()))
  34.                 .forEach(e -> {
  35.                     System.out.println(e.getKey().trim());
  36.                     for (int i = 0; i < e.getValue().size(); i++) {
  37.                         System.out.printf("-- %s\n",e.getValue().get(i).trim());
  38.  
  39.                     }
  40.                 });
  41.     }
  42. }
RAW Paste Data Copied