Foro de elhacker.net

Programación => 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
  1. public static int max = 1;
  2. public static int[] vect = new int[max];
  3.  
  4. public static void main(String[] args){
  5. vect[max-1] = 1; // vect[0] = 1;
  6. max++;
  7. vect[max-1] = 2; // vect[1] = 2;
  8. }
  9.  

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:

Código:
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
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
  1. 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.