Heim >Java >javaLernprogramm >Warum löst das Entfernen von Elementen aus Arrays.asList() eine UnsupportedOperationException aus?
Arrays.asList() Komfort: Fallstricke aufgedeckt
Arrays.asList() bietet einen vereinfachten Ansatz zum Erstellen eine Liste, die jedoch mit einer Einschränkung versehen ist: Ihre Elemente sind unveränderlich. Der Versuch, Vorgänge wie „remove()“ auszuführen, löst eine UnsupportedOperationException aus.
Arrays.asList() generiert eine „Liste fester Größe“, die jegliche strukturelle Änderungen verbietet. einschließlich Elemententfernung.
An Beheben Sie diese Einschränkung und entscheiden Sie sich für eine LinkedList, die für ihre schnelle Remove()-Operation bekannt ist:
List<String> list = new LinkedList<String>(Arrays.asList(split));
Bei Verwendung von String.split() zur Partitionierung Beachten Sie beim Erstellen einer Zeichenfolge, dass das Pipe-Zeichen (|) als Regex-Metazeichen von Bedeutung ist. Um Verwirrung zu vermeiden, schließen Sie es für eine wörtliche Übereinstimmung in Backslashes (|) ein:
template.split("\|")
Um die Ineffizienz der schrittweisen Elemententfernung zu überwinden, nutzen Sie a Effizienterer Ansatz:
Dieser verfeinerte Ansatz zeichnet sich durch eine O(N)-Komplexität aus und gewährleistet eine optimale Leistung.
Das obige ist der detaillierte Inhalt vonWarum löst das Entfernen von Elementen aus Arrays.asList() eine UnsupportedOperationException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!