Advertisement
Guest User

ListOperation2

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