Dies kann ein Duplikat sein, aber ich kann keine Fragen mit diesem Fehler sehen, also Entschuldigung, wenn es so ist.ArrayList Remove-Methode funktioniert nicht?
Ich versuche, die remove()
Methode zu verwenden, um eine Ganzzahl von meinem ArrayList
zu entfernen, aber es gibt mir java.lang.UnsupportedOperationException
. Die Methode remove sollte eine int
oder Integer zu meinem Verständnis, oder ein Wert aus der ArrayList
, aber diese scheinen nicht zu funktionieren und den gleichen Fehler geben.
Ich habe auch versucht mit "Tiefe" als index
, wie das ist die index
, die ich entfernen möchte.
Hier ist mein Code:
import java.util.*;
public class EP{
public static List<Integer> items = Arrays.asList(12, 13, 48, 42, 38, 2827, 827, 828, 420);
public static void main(String[]args){
System.out.println("Exam List");
for(Integer i: items){
System.out.println(i);
}
Scanner scan = new Scanner(System.in);
System.out.println("Enter depth");
int depth = scan.nextInt();
System.out.println("Enter value");
int value = scan.nextInt();
System.out.println(mark(depth, value));
}
public static int mark(int depth, int value){
int ret = -1; //This ensures -1 is returned if it cannot find it at the specified place
for(Integer i: items){
if(items.get(depth) == (Integer)value){ //This assummes depth starts at 0
ret = value;
items.remove(items.get(depth)); // has UnsupportedOperationException
}
}
System.out.println("Updated Exam List");
for(Integer j: items){
System.out.println(j);
}
return ret;
}
}
Bitte formatieren Sie Ihren Code. Dies ist völlig unleserlich. –
Arrays.asList() gibt ArrayList nicht zurück. Ich möchte, dass Sie herausfinden, ob Sie die von Array.asList() zurückgegebene Listenimplementierung ändern können. Sehen Sie den Unterschied zwischen dem Iterieren mit der einfachen for-Schleife, dem Iterieren mit der erweiterten for-Schleife und dem Iterieren mit dem List-Iterator. Sehen Sie auch, wenn Sie eine Liste ändern können, während Sie mit Iterator oder der erweiterten for-Schleife iterieren, und wenn dies nicht möglich ist. Wenn du diese studierst, wirst du alles, was du in deinem Code tust, und auch die Ausnahmen, die du bekommst, loswerden. In Ihrem Fall ist die Änderung während der Iteration kein Grund für eine Ausnahme, sondern studieren Sie immer noch –
siehe [this] (http://stackoverflow.com/a/158269/5394855) Post über das Erstellen einer 'ArrayList' aus einem' Array'. –