Advertisement
Guest User

ListOperations

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