Advertisement
damesova

List Ops

Feb 15th, 2020
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.28 KB | None | 0 0
  1. public class ListOperations {
  2.     public static void main(String[] args) {
  3.         Scanner scanner = new Scanner(System.in);
  4.  
  5.         List<String> elements = Arrays.stream(scanner.nextLine().split("\\s+"))
  6.                 .collect(Collectors.toList());
  7.  
  8.         String input = scanner.nextLine();
  9.         while (!input.equals("End")) {
  10.  
  11.             String[] data = input.split("\\s+");
  12.             String command = data[0];
  13.  
  14.             switch (command) {
  15.                 case "Add":
  16.                     elements.add(data[1]);
  17.                     break;
  18.                 case "Insert":
  19.                     String element = data[1];
  20.                     int index = Integer.parseInt(data[2]);
  21.  
  22.                     if (index >= 0 && index < elements.size()) {
  23.                         elements.add(index, data[1]);
  24.                     } else {
  25.                         System.out.println("Invalid index");
  26.                     }
  27.                     break;
  28.                 case "Remove":
  29.                     int indToRemove = Integer.parseInt(data[1]);
  30.  
  31.                     if (indToRemove >= 0 && indToRemove < elements.size()) {
  32.                         elements.remove(indToRemove);
  33.                     } else {
  34.                         System.out.println("Invalid index");
  35.                     }
  36.                     break;
  37.                 case "Shift":
  38.                     int count = Integer.parseInt(data[2]);
  39.  
  40.                     if (elements.size() > 0) {
  41.                         if (data[1].equals("left")) {
  42.  
  43.                             for (int i = 0; i < count % elements.size(); i++) {
  44.                                 elements.add(elements.get(0));
  45.                                 elements.remove(0);
  46.                             }
  47.                         } else {
  48.  
  49.                             for (int i = 0; i < count % elements.size(); i++) {
  50.                                 elements.add(0, elements.get(elements.size() - 1));
  51.                                 elements.remove(elements.size() - 1);
  52.                             }
  53.                         }
  54.                     }
  55.                     break;
  56.             }
  57.             input = scanner.nextLine();
  58.         }
  59.  
  60.         for (String element : elements) {
  61.             System.out.print(element + " ");
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement