Ligh7_of_H3av3n

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

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