¿Cambiar el tamaño de una matriz manteniendo los elementos actuales en Java?
He buscado una manera de cambiar el tamaño de una matriz en Java, pero no pude encontrar formas de cambiar el tamaño de la matriz manteniendo los elementos actuales .
Encontré, por ejemplo, un código como int[] newImage = new int[newWidth];
, pero esto elimina los elementos almacenados antes.
Mi código básicamente haría esto: cada vez que se agrega un nuevo elemento, la matriz se amplía en 1 . Creo que esto se podría hacer con programación dinámica, pero no estoy seguro de cómo implementarlo.
No se puede cambiar el tamaño de una matriz en Java. Necesitarías:
Cree una nueva matriz del tamaño deseado y copie el contenido de la matriz original a la nueva matriz, usando
java.lang.System.arraycopy(...);
Utilice la
java.util.ArrayList<T>
clase, que hace esto por usted cuando necesite agrandar la matriz. Resume muy bien lo que describe en su pregunta.Utilice
java.util.Arrays.copyOf(...)
métodos que devuelvan una matriz más grande, con el contenido de la matriz original.
No es agradable, pero funciona:
int[] a = {1, 2, 3};
// make a one bigger
a = Arrays.copyOf(a, a.length + 1);
for (int i : a)
System.out.println(i);
como se indicó antes, vaya con ArrayList