Str1k3rch0

04. List Operations

Nov 17th, 2022
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.23 KB | None | 0 0
  1. package ArrayList;
  2.  
  3. import java.util.*;
  4. import java.util.stream.Collectors;
  5.  
  6. public class E04ListOperations {
  7.  
  8.     public static void main(String[] args) {
  9.         Scanner scan = new Scanner(System.in);
  10.  
  11.         List<Integer> numbersList = Arrays.stream(scan.nextLine().split(" "))
  12.                         .map(Integer::parseInt)
  13.                         .collect(Collectors.toList());
  14.  
  15.         String command = scan.nextLine();
  16.  
  17.         int number = 0;
  18.  
  19.         int index = 0;
  20.  
  21.         while (!"End".equals(command)) {
  22.  
  23.             String[] commandArr = command.split(" ");
  24.  
  25.             switch (commandArr[0]) {
  26. //            · Add {number} - add number at the end
  27. //                [1] - number
  28.                 case "Add":
  29.                     number = Integer.parseInt(commandArr[1]);
  30.                     numbersList.add(number);
  31.                     break;
  32.  
  33. //            · Insert {number} {index} - insert number at given index
  34. //                [1] - number
  35. //                [2] - index
  36.                 case "Insert":
  37. //                       Валиден индекс
  38.                     if (isValidIndex(index, numbersList)) {
  39.                         number = Integer.parseInt(commandArr[1]);
  40.                         index = Integer.parseInt(commandArr[2]);
  41.                         numbersList.add(index, number);
  42.  
  43. //                       Невалиден индекс
  44.                     } else {
  45.                         System.out.println("Invalid index");
  46.                     }
  47.                     break;
  48.  
  49. //            · Remove {index} - remove that index
  50. //                [1] - index
  51.                 case "Remove":
  52.                    index = Integer.parseInt(commandArr[1]);
  53. //                       Валиден индекс
  54.                    if (isValidIndex(index, numbersList)) {
  55.                        numbersList.remove(index);
  56.  
  57. //                       Невалиден индекс
  58.                    } else {
  59.                        System.out.println("Invalid index");
  60.                    }
  61.                    break;
  62.  
  63.                 case "Shift":
  64.                     String direction = commandArr[1];
  65.                     int rotations = Integer.parseInt(commandArr[2]);
  66. //            · Shift left {count} - first number becomes last 'count' times // [1] - direction // [2] - number of rotations
  67.                     if (direction.equals("left")) {
  68.                         rotateListLeft(numbersList, rotations);
  69.  
  70. //            · Shift right {count} - last number becomes first 'count' times // [1] - direction // [2] - number of rotations
  71.                     } else {
  72.                         Collections.rotate(numbersList, rotations);
  73.                     }
  74.                     break;
  75.             }
  76.  
  77.             command = scan.nextLine();
  78.         }
  79.  
  80.         for (int item : numbersList) {
  81.             System.out.print(item + " ");
  82.         }
  83.  
  84.     }
  85.  
  86.     public static boolean isValidIndex (int index, List<Integer> numbersList) {
  87.         return  (index >= 0 && index <= numbersList.size() - 1);
  88.     }
  89.  
  90.     private static void rotateListLeft (List<Integer> numbersList, int rotations) {
  91.         int savedNumber = 0;
  92.         for (int index = 0; index < rotations; index++) {
  93. //                        Запазваме първия елемент
  94.             savedNumber = numbersList.get(0);
  95. //                        Премахваме първия елемент
  96.             numbersList.remove(0);
  97. //                        Добавяме първия елемент на последна позиция
  98.             numbersList.add(savedNumber);
  99.  
  100.         }
  101.     }
  102.  
  103. //    private static void rotateListRight (List<Integer> numbersList, int rotations) {
  104. //        int savedNumber = 0;
  105. //        for (int index = 0; index < rotations; index++) {
  106. ////            Запазваме последния елемент
  107. //            savedNumber = numbersList.get(numbersList.size() - 1);
  108. ////            Премахваме последния елемент
  109. //            numbersList.remove(numbersList.size() - 1);
  110. ////            Слагаме последния елемент на първа позиция
  111. //            numbersList.add(0, savedNumber);
  112. //        }
  113. //    }
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment