Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Shell Root en 10 Junio 2011, 03:46 AM

Título: Array dinamico
Publicado por: Shell Root en 10 Junio 2011, 03:46 AM
No se puede hacer lo siguiente,
Código (java) [Seleccionar]

public static int max = 1;
public static int[] vect = new int[max];

public static void main(String[] args){
vect[max-1] = 1; // vect[0] = 1;
max++;
vect[max-1] = 2; // vect[1] = 2;
}


y después cambiarle el tamaño?

Título: Re: Array dinamico
Publicado por: ShotgunLogic en 10 Junio 2011, 11:46 AM
Deberias de hacer un "this.", pero creo que el compilador te dará un error porque ya esta declarado anteriormente.
Título: Re: Array dinamico
Publicado por: barbieturico en 10 Junio 2011, 12:39 PM
Si no estoy equivocado, eso que intentas no se puede hacer.
Un rodeo que podrías hacer para crearte un array de Objects dinámico y relleno de ints sería:


Object[] vector;
java.util.List myList = new java.util.ArrayList();
int a = 1;
int b = 2;

myList.add(a);
myList.add(b);
vector = myList.toArray();
System.out.println(new Integer((vector[0].toString())).intValue()+ " " +new Integer((vector[1].toString())).intValue());


Una vez que tienes esto es muy fácil crearte una función que te convierta ese array de Objects en uno de ints.
Título: Re: Array dinamico
Publicado por: afdlkglfgfdgfhgf en 11 Junio 2011, 04:28 AM
hay un pequeño problema, los ArrayList solo admiten objetos por ende el int a y int b no los ingresaria, tendria que utilizar la clase wrapper de int, que es Integer, osea quedaria asi.

Integer a = 2;
Integer b = 3;

array.add(a);
array.add(b);


ssaludos.
Título: Re: Array dinamico
Publicado por: barbieturico en 11 Junio 2011, 15:09 PM
Pues la verdad, lo que dices tiene sentido, pero yo probé ese código y no me dió ningún problema (ni errores ni warnings) :P
Título: Re: Array dinamico
Publicado por: ShotgunLogic en 11 Junio 2011, 16:53 PM
Cita de: barbieturico en 11 Junio 2011, 15:09 PM
Pues la verdad, lo que dices tiene sentido, pero yo probé ese código y no me dió ningún problema (ni errores ni warnings) :P

Porque Java tiene una característica para hacer boxing y unboxing automáticamente, por eso cuando lo metes ya te lo debe de meter como un Integer en vez de como un int. Pasale el debugger y mira el array, seguro que dentro hay un Integer, así nos despejamos las dudas xD
Título: Re: Array dinamico
Publicado por: Valkyr en 11 Junio 2011, 17:10 PM
Y si a la hora de declararlos lo haces así:

Código (javascript) [Seleccionar]
java.util.List myList<int> = new java.util.ArrayList()<int>;

De esta forma debe dejarte insertar int en vez de su representación como clase, Integer.

Saludos.