Cómo reemplazar el valor existente del elemento ArrayList en Java [duplicate]

2 minutos de lectura

avatar de usuario
kaní

Todavía soy bastante nuevo en la programación de Java y estoy tratando de actualizar un valor existente de un ArrayList usando este código:

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);
}

quiero imprimir New en vez de Two pero tengo [Zero, One, New, Two, Three] como resultado, y todavía tengo Two. quiero imprimir [Zero, One, New, Three]. ¿Cómo puedo hacer esto? Gracias.

Utilizar el set método para reemplazar el valor antiguo por uno nuevo.

list.set( 2, "New" );

avatar de usuario
Sivabalán

Si no conoce la posición para reemplazar, use el iterador de lista para buscar y reemplazar el elemento
ListIterator.set(E e)

ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
     String next = iterator.next();
     if (next.equals("Two")) {
         //Replace element
         iterator.set("New");
     }
 }

avatar de usuario
asombrado

Usar ArrayList.set

list.set(2, "New");

  • ¿Qué sucede si no conozco el Índice de objetos? Aún así, quiero reemplazar el objeto con uno nuevo en un lugar específico. ¿Es posible?

    – santanam

    29 de mayo de 2017 a las 6:57

  • @santhanam Puede usar list.set(list.indexOf(oldObject), newObject);

    – Alberto Alegría

    3 de junio de 2017 a las 1:07

  • @Alberto, ¿y si fuera el mismo elemento pero actualizado?

    – Mohamed Alí

    15 de marzo de 2018 a las 12:39

  • anulación de @MohammadAli equals método de su clase de objeto e implemente sus propias reglas para verificar si los objetos son iguales (iguales), después de eso List.contains(object), List.indexOf(object), object1.equals(object2) funcionará bien

    – usuario25

    26 de enero de 2019 a las 14:41


  • @santhanam Tenga cuidado de que indexOf devolverá el índice de la primera aparición del elemento

    – arxakoulini

    16 sep 2020 a las 10:55

avatar de usuario
Thwin Htoo Aung

Debes usar

list.remove(indexYouWantToReplace);

primero.

Tus elementos se volverán así. [zero, one, three]

entonces agrega esto

list.add(indexYouWantedToReplace, newElement)

Tus elementos se volverán así. [zero, one, new, three]

¿Ha sido útil esta solución?