Maison >Java >javaDidacticiel >Pourquoi la suppression d'éléments d'une liste génère-t-elle une exception UnsupportedOperationException ?
UnsupportedOperationException : Suppression d'un élément d'une liste
Lorsque vous essayez de supprimer un élément d'une liste à l'aide de list.remove(index), vous pouvez rencontrer une UnsupportedOperationException. Cette erreur provient de l'utilisation d'une liste de taille fixe renvoyée par Arrays.asList().
Arrays.asList() renvoie une liste de taille fixe
Arrays .asList() crée une liste soutenue par le tableau donné. Cette liste est immuable et ne prend pas en charge les modifications structurelles telles que l'ajout ou la suppression d'éléments.
Correction :
Pour résoudre ce problème, utilisez une implémentation de liste mutable qui autorise les suppressions. Par exemple, vous pouvez utiliser une LinkedList.
List<String> list = new LinkedList<>(Arrays.asList(split));
Diviser avec des expressions régulières
La méthode split() est utilisée avec des expressions régulières pour diviser une chaîne. Le caractère pipe (|) est un métacaractère regex qui doit être échappé lorsqu'il est utilisé comme un caractère littéral.
Correction :
Pour diviser un caractère pipe littéral, échappez-le en utilisant des doubles barres obliques inverses.
template.split("\|")
Optimisé Algorithme
Au lieu d'invoquer à plusieurs reprises Remove(), envisagez un algorithme plus efficace :
Cet algorithme s'exécute en temps O(N), où N est la taille de la liste, ce qui est nettement plus rapide que l'approche originale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!