Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
Convertir lista en matriz en Java

¿Cómo puedo convertir una List en una Array en Java?

Verifique el código a continuación:

 ArrayList<Tienda> tiendas; List<Tienda> tiendasList; tiendas = new ArrayList<Tienda>(); Resources res = this.getBaseContext().getResources(); XMLParser saxparser = new XMLParser(marca,res); tiendasList = saxparser.parse(marca,res); tiendas = tiendasList.toArray(); this.adaptador = new adaptadorMarca(this, R.layout.filamarca, tiendas); setListAdapter(this.adaptador);

Necesito llenar la matriz tiendas con los valores de tiendasList .

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

O:

 Foo[] array = list.toArray(new Foo[0]);

o:

 Foo[] array = new Foo[list.size()]; list.toArray(array); // fill the array

Tenga en cuenta que esto solo funciona para matrices de tipos de referencia. Para arreglos de tipos primitivos, use la forma tradicional:

 List<Integer> list = ...; int[] array = new int[list.size()]; for(int i = 0; i < list.size(); i++) array[i] = list.get(i);

Actualizar:

Se recomienda ahora usar list.toArray(new Foo[0]); , no list.toArray(new Foo[list.size()]); .

De la inspección de JetBrains Intellij Idea:

Hay dos estilos para convertir una colección en una matriz: ya sea usando una matriz de tamaño predeterminado (como c.toArray(new String[c.size()]) ) o usando una matriz vacía (como c.toArray(new String[ 0]) .

En versiones anteriores de Java, se recomendaba usar una matriz de tamaño predeterminado, ya que la llamada de reflexión necesaria para crear una matriz del tamaño adecuado era bastante lenta. Sin embargo, desde las actualizaciones tardías de OpenJDK 6, esta llamada se ha intrínseco, lo que hace que el rendimiento de la versión de matriz vacía sea el mismo y, a veces, incluso mejor, en comparación con la versión de tamaño predeterminado. Además, pasar una matriz de tamaño predeterminado es peligroso para una colección concurrente o sincronizada, ya que es posible una carrera de datos entre el tamaño y la llamada toArray , lo que puede generar valores nulos adicionales al final de la matriz, si la colección se redujo al mismo tiempo durante la operación.

Esta inspección permite seguir el estilo uniforme: ya sea utilizando una matriz vacía (que se recomienda en Java moderno) o utilizando una matriz de tamaño predeterminado (que podría ser más rápida en versiones anteriores de Java o JVM no basadas en HotSpot).

over 4 years ago · Santiago Trujillo Denunciar

0

Una alternativa en Java 8:

 String[] strings = list.stream().toArray(String[]::new);

Desde Java 11:

 String[] strings = list.toArray(String[]::new);
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que esta es la forma más sencilla:

 Foo[] array = list.toArray(new Foo[0]);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda