Hipotéticamente, tengo 5 objetos de matriz de cadenas:
String[] array1 = new String[];
String[] array2 = new String[];
String[] array3 = new String[];
String[] array4 = new String[];
String[] array5 = new String[];
y quiero que otro objeto de matriz contenga esos 5 objetos de matriz de cadena. ¿Cómo lo hago? ¿Puedo ponerlo en otra matriz?
Respuestas:
Me gusta esto:
o
(La última sintaxis se puede usar en asignaciones que no sean en el punto de la declaración de variable, mientras que la sintaxis más corta solo funciona con declaraciones).
fuente
new String[10][]
?tratar
fuente
arrays[0] = new String[] {"a", "b", "c"}
o usar una lista temporal: <pre> <code> List <String []> myList = new ArrayList <> (); myList.add (new String [] {"a", "b", "c"}); myList.add (new String [] {"d", "e", "f"}); myList.toArray (matrices); </code> </pre>Si bien hay dos respuestas excelentes que le dicen cómo hacerlo, creo que falta otra respuesta: en la mayoría de los casos, no debería hacerlo en absoluto.
Las matrices son engorrosas, en la mayoría de los casos es mejor usar la API de colección .
Con Colecciones, puede agregar y eliminar elementos y hay Colecciones especializadas para diferentes funcionalidades (búsqueda basada en índices, clasificación, singularidad, acceso FIFO, concurrencia, etc.).
Si bien, por supuesto, es bueno e importante conocer las matrices y su uso, en la mayoría de los casos, el uso de colecciones hace que las API sean mucho más manejables (razón por la cual las nuevas bibliotecas como Google Guava apenas usan matrices).
Entonces, para su escenario, preferiría una Lista de Listas, y la crearía usando Guava:
fuente
está la clase que mencioné en el comentario que tuvimos con Sean Patrick Floyd: lo hice con un uso peculiar que necesita WeakReference, pero puedes cambiarlo por cualquier objeto con facilidad.
Espero que esto pueda ayudar a alguien algún día :)
Ejemplo de cómo usarlo:
fuente