Comment remplacer la valeur existante de L'élément ArrayList en java [dupliquer]

cette question a déjà une réponse ici:

  • comment mettre à jour l'élément à une certaine position dans un ArrayList? [duplicate] 5 réponses

je suis encore tout à fait nouveau à la programmation java et j'essaie de mettre à jour une valeur existante de la liste des tableaux en utilisant ce code

public static void main(String[] args){

    List<String> list = new ArrayList<String>();

    list.add( "Zero" );
    list.add( "One" );
    list.add( "Two" );
    list.add( "Three" );


    list.add( 2, "New" ); // add at 2nd index


    System.out.println(list);}

je veux imprimer New au lieu de Two mais j'ai eu [Zero, One, New, Two, Three] comme résultat, j'ai encore"deux". Je veux imprimer [Zero, One, New, Three] . Comment dois-je faire? remercier.

95
demandé sur Andy 2014-06-01 18:42:15

5 réponses

utiliser la méthode set pour remplacer l'ancienne valeur par une nouvelle.

list.set( 2, "New" );
201
répondu Bill the Lizard 2014-06-01 14:44:29

Utilisation ArrayList.set

list.set(2, "New");
15
répondu wonce 2018-09-09 22:47:30

pour remplacer l'élément existant à la position spécifiée dans L'Arraylist, utiliser la méthode,

set(int index, E element)

dans votre bloc de code que vous utilisez list.add( 2, "New" ); Cette méthode insère l'élément spécifié à la position spécifiée dans cette liste.

ci-dessous, il y a quelques différences entre la méthode add et la méthode set,

Le java.util.ArrayList.set(int index, E element) remplace l'élément à la position spécifiée dans cette liste avec l'élément spécifié.ici, int l'index est l'index de l'élément à remplacer, et l'élément est l'élément à être stockée à la position spécifiée. Si l'indice est hors de portée, alors il va jeter le IndexOutOfBoundsException exception. Cette méthode retourne l'élément à la position spécifiée.

java.util.ArrayList.add(int index,E element)
La méthode

insère l'élément spécifié E à la position spécifiée dans la présente liste.Il déplace l'élément qui se trouve actuellement à cette position (s'il y a lieu) et tout élément subséquent. à droite (en ajoutera un à leurs indices).Cette méthode ne renvoie pas de valeur.et il va également jeter L'exception IndexOutOfBoundsException si l'indice est hors de portée.

8
répondu Zia 2015-12-13 17:31:38

si vous n'êtes pas au courant de la position à remplacer, utilisez l'itérateur de liste pour trouver et remplacer l'élément ListIterator.mis(E)

ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
     String next = iterator.next();
     if (next.equals("Two")) {
         //Replace element
         iterator.set("New");
     }
 }
8
répondu Sivabalan 2017-08-23 14:09:24

vous devez utiliser

list.remove(indexYouWantToReplace);

d'abord.

vos éléments deviendront comme ceci. [zero, one, three]

puis Ajouter

list.add(indexYouWantedToReplace, newElement)

vos éléments deviendront comme ceci. [zero, one, new, three]

0
répondu Thwin Htoo Aung 2018-09-09 22:48:53