Advertisement
Ligh7_of_H3av3n

Коригираният код на 04. List Operations

Feb 11th, 2024
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.80 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_04 {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         List<Integer> numbers = Arrays.stream(scanner.nextLine().split("\\s+"))
  12.                 .map(Integer::parseInt)
  13.                 .collect(Collectors.toList());
  14.  
  15.         String command = scanner.nextLine();
  16.         while (!command.equals("End")) {
  17.             String[] commandParts = command.split(" ");
  18.             String commandName = commandParts[0];
  19.             switch (commandName) {
  20.                 case "Add":
  21.                     int numberToAdd = Integer.parseInt(commandParts[1]);
  22.                     numbers.add(numberToAdd);
  23.                     break;
  24.                 case "Insert":
  25.                     int numberToInsert = Integer.parseInt(commandParts[1]);
  26.                     int indexToInsert = Integer.parseInt(commandParts[2]);
  27.                     if (isValidIndex(indexToInsert, numbers.size())) {
  28.                         numbers.add(indexToInsert, numberToInsert);
  29.                     } else {
  30.                         System.out.println("Invalid index");
  31.                     }
  32.                     break;
  33.                 case "Remove":
  34.                     int indexToRemove = Integer.parseInt(commandParts[1]);
  35.                     if (isValidIndex(indexToRemove, numbers.size())) {
  36.                         numbers.remove(indexToRemove);
  37.                     } else {
  38.                         System.out.println("Invalid index");
  39.                     }
  40.                     break;
  41.                 case "Shift":
  42.                     int count = Integer.parseInt(commandParts[2]);
  43.                     if (commandParts[1].equals("left")) {
  44.                         shiftLeft(numbers, count);
  45.                     } else if (commandParts[1].equals("right")) { //corrected code
  46.                         shiftRight(numbers, count);
  47.                     }
  48.                     break;
  49.             }
  50.             command = scanner.nextLine();
  51.         }
  52.  
  53.         for (int number : numbers) {
  54.             System.out.print(number + " ");
  55.         }
  56.     }
  57.  
  58.     private static boolean isValidIndex(int index, int size) {
  59.         return index >= 0 && index < size;
  60.     }
  61.  
  62.     private static void shiftLeft(List<Integer> numbers, int count) {
  63.         for (int i = 0; i < count; i++) {
  64.             int firstElement = numbers.remove(0);
  65.             numbers.add(firstElement);
  66.         }
  67.     }
  68.  
  69.     private static void shiftRight(List<Integer> numbers, int count) {
  70.         for (int i = 0; i < count; i++) {
  71.             int lastElement = numbers.remove(numbers.size() - 1);
  72.             numbers.add(0, lastElement);
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement