Array dinamico

Iniciado por Shell Root, 10 Junio 2011, 03:46 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

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?

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

ShotgunLogic

Deberias de hacer un "this.", pero creo que el compilador te dará un error porque ya esta declarado anteriormente.
The clans are marching against the law, bagpipers play the tunes of war, death or glory I will find, rebellion on my mind.

barbieturico

#2
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.

afdlkglfgfdgfhgf

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.

barbieturico

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

ShotgunLogic

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
The clans are marching against the law, bagpipers play the tunes of war, death or glory I will find, rebellion on my mind.

Valkyr

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.