Lyubohd

04. List Operations

Feb 14th, 2020
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.10 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.     public static void main(String[] args) {
  6.         Scanner scan = new Scanner(System.in);
  7.         ArrayList<String> numbers = readStringList(scan);
  8.  
  9.         String input = scan.nextLine();
  10.  
  11.         while (!"End".equals(input)) {
  12.             String[] tokens = input.split("\\s+");
  13.             String command = tokens[0];
  14.  
  15.             switch (command) {
  16.                 case "Add":
  17.                     String elementToAdd = tokens[1];
  18.                     numbers.add(elementToAdd);
  19.                     break;
  20.                 case "Insert": {
  21.                     String number = tokens[1];
  22.                     int index = Integer.parseInt(tokens[2]);
  23.                     if (isValidIndex(index, numbers)) {
  24.                         numbers.add(index, number);
  25.                     } else {
  26.                         System.out.println("Invalid index");
  27.                     }
  28.                 }
  29.                 break;
  30.                 case "Remove": {
  31.                     int index = Integer.parseInt(tokens[1]);
  32.                     if (isValidIndex(index, numbers)) {
  33.                         numbers.remove(index);
  34.                     } else {
  35.                         System.out.println("Invalid index");
  36.                     }
  37.                 }
  38.                 break;
  39.                 case "Shift":
  40.                     int rotCnt = Integer.parseInt(tokens[2]);
  41.                     if ("left".equals(tokens[1])) {
  42.                         for (int i = 0; i < rotCnt; i++) {
  43.                             String temp = numbers.get(0);
  44.                             for (int j = 0; j < numbers.size() - 1; j++) {
  45.                                 String nextElement = numbers.get(j + 1);
  46.                                 numbers.set(j, nextElement);
  47.                             }
  48.                             numbers.set(numbers.size() - 1, temp);
  49.                         }
  50.                     } else {
  51.                         for (int i = 0; i < rotCnt; i++) {
  52.                             String temp = numbers.get(numbers.size() - 1);
  53.                             for (int j = numbers.size() - 1; j > 0; j--) {
  54.                                 String nextNumber = numbers.get(j - 1);
  55.                                 numbers.set(j, nextNumber);
  56.                             }
  57.                             numbers.set(0, temp);
  58.                         }
  59.                     }
  60.                     break;
  61.             }
  62.             input = scan.nextLine();
  63.         }
  64.         System.out.println(String.join(" ", numbers));
  65.     }
  66.  
  67.     public static ArrayList<String> readStringList(Scanner scanner) {
  68.         ArrayList<String> output = new ArrayList<>();
  69.         String[] input = scanner.nextLine().split("\\s+");
  70.         for (String element : input) {
  71.             output.add(element);
  72.         }
  73.         return output;
  74.     }
  75.  
  76.     public static boolean isValidIndex(int index, ArrayList<String> collection) {
  77.         if (index >= 0 && index < collection.size()) {
  78.             return true;
  79.         } else {
  80.             return false;
  81.         }
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment