Maison >Java >javaDidacticiel >Pourquoi la suppression d'éléments de Arrays.asList() génère-t-elle une exception UnsupportedOperationException ?

Pourquoi la suppression d'éléments de Arrays.asList() génère-t-elle une exception UnsupportedOperationException ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 21:47:13210parcourir

Why Does Removing Elements from Arrays.asList() Throw an UnsupportedOperationException?

Comprendre l'exception UnsupportedOperationException pour la suppression de liste

La commodité d'Arrays.asList() : les pièges révélés

Arrays.asList() propose une approche simpliste de la création une liste, mais elle comporte une mise en garde : ses éléments sont immuables. Tenter d'effectuer des opérations telles que remove() déclenche une UnsupportedOperationException.

Comprehending Arrays.asList() Limitations

Arrays.asList() génère une "liste de taille fixe", interdisant toute modification structurelle, y compris la suppression d'éléments.

La bonne manière : adopter LinkedList

Pour remédier à cette limitation, optez pour une LinkedList, réputée pour son opération quick remove() :

List<String> list = new LinkedList<String>(Arrays.asList(split));

Grasping Regex in String.split()

When En utilisant String.split() pour partitionner une chaîne, gardez à l'esprit que le caractère barre verticale (|) a une signification en tant que métacaractère regex. Pour éviter toute confusion, placez-le entre des barres obliques inverses (|) pour une correspondance littérale :

template.split("\|")

Mise en œuvre d'un algorithme efficace

Pour surmonter l'inefficacité de la suppression d'éléments étape par étape, exploitez un approche plus efficace :

  1. Générer un ensemble de nombres aléatoires distincts dans la plage souhaitée range.
  2. Utilisez un ListIterator() pour parcourir la liste, en supprimant les éléments aux indices prédéfinis.

Cette approche raffinée présente une complexité O(N), garantissant des performances optimales.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn