Advertisement
LoraOrliGeo

ListManipulationAdvanced_Lists_Lab

Apr 8th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. package feb19_Lists_Lab;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.stream.Collectors;
  8.  
  9. public class ListManipulationAdvanced {
  10.     public static void main(String[] args) {
  11.         @SuppressWarnings("resource")
  12.  
  13.         Scanner sc = new Scanner(System.in);
  14.  
  15.         List<Integer> input = Arrays.stream(sc.nextLine().split("\\s+")).map(Integer::parseInt)
  16.                 .collect(Collectors.toList());
  17.  
  18.         String command = "";
  19.         final String stop = "end";
  20.         while (!stop.equals(command = sc.nextLine())) {
  21.             String[] inputData = command.split("\\s+");
  22.             String toDo = inputData[0];
  23.  
  24.             switch (toDo) {
  25.             case "Contains":
  26.                 int number = Integer.parseInt(inputData[1]);
  27.                 boolean isNumberInList = input.contains(number);
  28.                 String result = isNumberInList ? "Yes" : "No such number";
  29.                 System.out.println(result);
  30.                 break;
  31.             case "Print":
  32.                 int reminder = inputData[1].equals("even") ? 0 : 1;
  33.                 input.stream().filter(n -> n % 2 == reminder).forEach(n -> System.out.print(n + " "));
  34.                 System.out.println();
  35.                 break;
  36.             case "Get":
  37.                 int sum = input.stream().map(e -> e.intValue()).reduce(0, (e, r) -> e + r).intValue();
  38.                 System.out.println(sum);
  39.                 break;
  40.             case "Filter":
  41.                 String condition = inputData[1];
  42.                 int numberCond = Integer.parseInt(inputData[2]);
  43.                
  44.                 List<Integer> output = new ArrayList<>();
  45.                
  46.                 switch (condition) {
  47.                 case "<":
  48.                     output = input.stream().filter(e -> e < numberCond).collect(Collectors.toList());
  49.                     break;
  50.                 case "<=":
  51.                     output = input.stream().filter(e -> e <= numberCond).collect(Collectors.toList());
  52.                     break;
  53.                 case ">":
  54.                     output = input.stream().filter(e -> e > numberCond).collect(Collectors.toList());
  55.                     break;
  56.                 case ">=":
  57.                     output = input.stream().filter(e -> e >= numberCond).collect(Collectors.toList());
  58.                     break;
  59.                 }
  60.                 System.out.println(output.toString().replaceAll("\\[|,|\\]", ""));
  61.                 break;
  62.             }
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement