Java Language Remplacement sur place d'un élément List


Exemple

Cet exemple concerne le remplacement d'un élément List tout en veillant à ce que l'élément de remplacement soit à la même position que l'élément remplacé.

Cela peut être fait en utilisant ces méthodes:

  • set (int index, type T)
  • int indexOf (type T)

Considérons un ArrayList contenant les éléments "Programme démarrant!", "Bonjour tout le monde!" et "Au revoir le monde!"

List<String> strings = new ArrayList<String>();
strings.add("Program starting!");
strings.add("Hello world!");
strings.add("Goodbye world!");

Si nous connaissons l'indice de l'élément que nous voulons remplacer, nous pouvons simplement utiliser set comme suit:

strings.set(1, "Hi world");

Si nous ne connaissons pas l'index, nous pouvons le rechercher en premier. Par exemple:

int pos = strings.indexOf("Goodbye world!");
if (pos >= 0) {
    strings.set(pos, "Goodbye cruel world!");
}

Remarques:

  1. L'opération set ne provoquera pas une ConcurrentModificationException .
  2. L'opération set est rapide ( O(1) ) pour ArrayList mais lente ( O(N) ) pour une LinkedList .
  3. Une recherche indexOf sur une ArrayList ou LinkedList est lente ( O(N) ).