Java - 在动态 array/list 中添加和删除元素

Java - Add and remove elements from a dynamic array/list

我需要我的数组是动态的,只要用户 enters/deletes 元素。数组不能有已经定义的长度或询问用户长度。例如用户决定添加 5,数组将是:{5},然后用户添加 34 {5,34},然后删除 5,{34}。 有办法吗?我一直在尝试使用列表,但是当我使用 if remove 一个不起作用时,当我将 switch 与此代码一起使用时,它会显示“无法访问的语句”。 到目前为止,这是代码:

List<String> list = new ArrayList<>();
        Scanner stdin = new Scanner(System.in);

        do {
            System.out.println("Current  " + list);
            System.out.println("Add more? (1) delete one? (2) exit (3)");
            int a= stdin.nextInt();  
            
            switch(a){
                case 1:
                System.out.println("Enter: ");
                list.add(stdin.next()); 
                break;
                case 2:
                System.out.println("Enter: ");
                list.remove(stdin.next());
                break;
                case 3:
                break;
                default:
                break;
            }
            
        } while (true);
        
        stdin.close();
        System.out.println("List is " + list);
        String[] arr = list.toArray(new String[0]);
        System.out.println("Array is " + Arrays.toString(arr));

您可以尝试使用label。 所以基本上你的 case 3 中的 break 只在 switch 语句之外中断,而不是在 do while 循环之外。 您可以在 do 之前添加一条语句,如下所示:

outerloop:
do{
  switch(a){
  // rest of your logic
  case 3:
  break outerloop;
  }
}
while(true)

其中 outerloop 是一个标签。请试试这个。

我认为您的 while 声明有问题。 当您使用 break 关键字时,它指的是您的 switch 语句。 所以你永远不会到达循环的尽头。

尝试一些东西来实现break循环