Didart

List Manipulation Advanced

Oct 14th, 2021
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.18 KB | None | 0 0
  1. import java.text.DecimalFormat;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class ListManipulationAdvanced {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         List<Integer> numbersList = Arrays
  13.                 .stream(scanner.nextLine().split(" "))
  14.                 .map(Integer::parseInt)
  15.                 .collect(Collectors.toList());
  16.  
  17.         String input = scanner.nextLine();
  18.         while (!input.equals("end")) {
  19.             List<String> commandLine = Arrays.stream(input.split(" ")).collect(Collectors.toList());
  20.             String command = commandLine.get(0);
  21.  
  22.             switch (command) {
  23.                 case "Contains":
  24.                     int number = Integer.parseInt(commandLine.get(1));
  25.  
  26.                     if (numbersList.contains(number)) {
  27.                         System.out.println("Yes");
  28.                     } else {
  29.                         System.out.println("No such number");
  30.                     }
  31.                     break;
  32.                 case "Print":
  33.                     String secondCommand = commandLine.get(1);
  34.  
  35.                     if (secondCommand.equals("even")) {
  36.                         System.out.println(joinElementsByDelimiter(getEvenNumbers(numbersList), " "));
  37.                     } else {
  38.                         System.out.println(joinElementsByDelimiter(getOddNumbers(numbersList), " "));
  39.                     }
  40.                     break;
  41.                 case "Get":
  42.                     int sum = 0;
  43.                     for (int i = 0; i < numbersList.size(); i++) {
  44.                         sum = sum + numbersList.get(i);
  45.                     }
  46.                     System.out.println(sum);
  47.                     break;
  48.                 case "Filter":
  49.                     String condition = commandLine.get(1);
  50.                     int numberCondition = Integer.parseInt(commandLine.get(2));
  51.  
  52.                     System.out.println(joinElementsByDelimiter(getConditionalNumbers(numbersList, condition, numberCondition), " "));
  53.  
  54.                     break;
  55.             }
  56.  
  57.             input = scanner.nextLine();
  58.         }
  59.     }
  60.  
  61.     public static List<Integer> getConditionalNumbers(List<Integer> initList, String condition, int number) {
  62.         List<Integer> resultList = new ArrayList<>();
  63.  
  64.         for (int i = 0; i < initList.size(); i++) {
  65.             int currentNum = initList.get(i);
  66.  
  67.             if (condition.equals("<")) {
  68.                 if (currentNum < number) {
  69.                     resultList.add(currentNum);
  70.                 }
  71.             } else if (condition.equals(">")) {
  72.                 if (currentNum > number) {
  73.                     resultList.add(currentNum);
  74.                 }
  75.             } else if (condition.equals(">=")) {
  76.                 if (currentNum >= number) {
  77.                     resultList.add(currentNum);
  78.                 }
  79.             } else if (condition.equals("<=")) {
  80.                 if (currentNum <= number) {
  81.                     resultList.add(currentNum);
  82.                 }
  83.             }
  84.         }
  85.  
  86.         return resultList;
  87.     }
  88.  
  89.     public static List<Integer> getEvenNumbers(List<Integer> initList) {
  90.         List<Integer> evenNums = new ArrayList<>();
  91.         for (int i = 0; i < initList.size(); i++) {
  92.             if (initList.get(i) % 2 == 0) {
  93.                 evenNums.add(initList.get(i));
  94.             }
  95.         }
  96.  
  97.         return evenNums;
  98.     }
  99.  
  100.     public static List<Integer> getOddNumbers(List<Integer> initList) {
  101.         List<Integer> oddNums = new ArrayList<>();
  102.         for (int i = 0; i < initList.size(); i++) {
  103.             if (initList.get(i) % 2 != 0) {
  104.                 oddNums.add(initList.get(i));
  105.             }
  106.         }
  107.  
  108.         return oddNums;
  109.     }
  110.  
  111.     public static String joinElementsByDelimiter(List<Integer> items, String delimiter) {
  112.         String output = "";
  113.         for (Integer item : items) {
  114.             DecimalFormat df = new DecimalFormat("0.#");
  115.             String numDf = df.format(item) + delimiter;
  116.  
  117.             output += numDf;
  118.         }
  119.  
  120.         return output;
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment