Задача 2. Change List дава Runtime error на единия от тестовете
Здравейте,
Не можах да открия къде се дъни.
Моля помогнете да намеря грешката.
Приятен ден!
Задачата е :
Write a program, which reads a list of integers from the console and receives commands, which manipulate the list. Your program may receive the following commands:
- Delete {element} – delete all elements in the array, which are equal to the given element
- Insert {element} {position} – insert element and the given position
You should stop the program when you receive the command "end". Print all numbers in the array separated with single whitespace.
Examples
| Input | Output | 
| 1 2 3 4 5 5 5 6 Delete 5 Insert 10 1 Delete 5 end | 1 10 2 3 4 6 | 
| 20 12 4 319 21 31234 2 41 23 4 Insert 50 2 Insert 50 5 Delete 4 end | 20 12 50 319 50 21 31234 2 41 23 
 | 
Решението ми е:
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        List<Integer> intList = new ArrayList<Integer>();
        int[] intArr=Arrays.stream(sc.nextLine().split(" ")).mapToInt(e->Integer.parseInt(e)).toArray();
        for (int i:intArr){
            intList.add(i);
        }
        String strInput="";
        while(!(strInput=sc.nextLine().toLowerCase()).equals("end")){
            String[] inputArr=strInput.split(" ");
            switch (inputArr[0]){
                case "insert":
                    int element=Integer.parseInt(inputArr[1]);
                    int index=Integer.parseInt(inputArr[2]);
                    if (index >= 0 && index < intList.size()){
                        intList.add(index,element);
                    }
                    break;
                case "delete":{
                    int searchVal=Integer.parseInt(inputArr[1]);
                    intList.removeAll(Collections.singleton(searchVal));
                    break;
                }
            }
        }
        for (int i=0;i<intList.size();i++){
            System.out.printf("%d ",intList.get(i));
        }
    }
}
Благодаря, явно е време да науча regex .
Некоректно е ,че никъде в условието не беше казано,че може да има повече от един интервал във входните данни.
Успех!