La adición de una lista a otra lista en java?

He a continuación el código java.

List<SomePojo> list = new ArrayList<SomePojo>();
//add 100 SomePojo objects to list.

Ahora de la lista tiene más de 100 objetos.

Si puedo crear una instancia más de la siguiente manera:

List<SomePojo> anotherList = new ArrayList<SomePojo>();
anotherList .addAll(list);

Gracias!

  • Cuenta que revierte la pregunta original, debido a que sus ediciones se perdió el punto entero de la pregunta en sí misma.
  • El problema es que esta no es una cuestión, y no tiene ningún sentido en absoluto 😉
  • por favor, esta cuestión debe editar, lo hace no tiene sentido.
  • Esta cuestión debe moderador atención, parece debido a ediciones, la pregunta ya no existe.
InformationsquelleAutor user1016403 | 2012-06-30

5 Kommentare

  1. 32

    Un objeto es sólo una vez en la memoria. Su primera adición list sólo añade las referencias a objetos.

    anotherList.addAll también acaba de agregar las referencias. Aún así sólo 100 objetos en la memoria.

    Si cambia list añadiendo o quitando elementos, anotherList no será cambiado. Pero si usted cambia cualquier objeto en list, a continuación, su contenido será también ha cambiado, al acceder a él desde anotherList, porque la misma referencia se señala de ambas listas.

    • ¿Cómo se puede borrar o retirar el otro lista de referencia? por ejemplo la Lista de<Cadena > a=new ArrayList<>(); Lista<Cadena> b=new ArrayList<>(); a.add(«uno»); una.add(«dos»); una.add(«Tres);
    • No está claro lo que están pidiendo. Tal vez usted sólo debe publicar una pregunta aparte de ESO.
  2. 9

    100, llevará a cabo las mismas referencias. Por lo tanto, si usted hace un cambio a un objeto específico en el list, va a afectar el mismo objeto en anotherList.

    La adición o eliminación de objetos en cualquiera de la lista no afectará a las demás.

    list y anotherList son dos instancias diferentes, que sólo tienen las mismas referencias de los objetos «dentro» de ellos.

    • gracias por ur respuesta. si puedo agregar/quitar cualquier objeto en la lista, hace el mismo cambio se refleja en otherlist?
    • no, eso no afecta. lista y anotherList son dos instancias diferentes, que sólo tienen las mismas referencias de los objetos «dentro» de ellos.
  3. 6

    Citando al oficial de javadoc de List.addAll:

    Appends all of the elements in the specified collection to the end of
    this list, in the order that they are returned by the specified
    collection's iterator (optional operation).  The behavior of this
    operation is undefined if the specified collection is modified while
    the operation is in progress.  (Note that this will occur if the
    specified collection is this list, and it's nonempty.)

    Así que va a copiar las referencias de los objetos en list a anotherList. Cualquier método que no funciona en la referencia de los objetos de anotherList (tales como la eliminación, adición, la clasificación) es local, y por lo tanto no influyen en list.

  4. 2

    Extracto de la API de Java para addAll(collection c) en la Interfaz de Lista ver aquí

    «Añade todos los elementos de la colección especificada para el final de esta lista, en el orden en que sean devueltos por la colección especificada del iterador (opcional operación).»

    Usted tendrá tanto el objeto como el que tiene en ambas listas, el número de objetos en su primera lista, más el número de objetos que tiene en su segunda lista – en su caso 100.

  5. 0

    no… una Vez que u han ejecutado la instrucción anotherList.addAll(lista) y después que si u cambiar algunos datos de la lista de no llevar a otra lista

    • su respuesta es ambigua.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea