Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Baal_30 en 3 Abril 2015, 14:47 pm



Título: Duda con arraylist
Publicado por: Baal_30 en 3 Abril 2015, 14:47 pm
Buenas. Intento introducir números en un arraylist con un for, y no me da ningún error, pero cuando los imprimo por consola me muestra todo asteriscos...

Aquí está el código :

Código
  1. public static ArrayList<Integer> numerosCalientes = new ArrayList<Integer>();
  2. public static int[] numSalidos = new int[37];
  3. public static double[] porcentajeNum = new double[37];
  4.  
  5. //CALCULAR PORCENTAJE Y METERLO EN ARRAY
  6. for(int i = 0 ; i<porcentajeNum.length;i++){
  7. porcentajeNum[i]=(numSalidos[i]*100)/numerosTotal;
  8. }
  9.  
  10. //CALCULAR NUMEROS CALIENTES Y METERLO EN ARRAYLIST
  11. for(int i = 0; i<numerosCalientes.size();i++){
  12. if(porcentajeNum[i]>4){
  13. Integer numCal = (Integer) i;
  14. numerosCalientes.add(numCal);
  15. }
  16. }
  17.  

Primero probé sin el parse y poniendo simplemente : numerosCalientes.add(i);
Pero me da el mismo resultado...

Luego para mostrarlo lo hago así (no se si está bien usado el Iterator, no lo he usado casi) :

Código
  1. Iterator<Integer> it = numerosCalientes.iterator();
  2. while(it.hasNext()){
  3. System.out.print(it.next()+" - ");
  4. }

Gracias de antemano y un saludo ;)


Título: Re: Duda con arraylist
Publicado por: Usuario Invitado en 3 Abril 2015, 15:15 pm
No necesitas convertir un primitivo a su wrapper cuando lo agregas a una lista o pasas su referencia a un wrapper. Java tiene lo que denomina autoboxing, que es el proceso de convertir un primitivo a su wrapper y viceversa.

Respecto a cómo iterar un List, simplemente hazlo con un foreach:

Código
  1. for(Integer current : numerosCalientes) {}


Título: Re: Duda con arraylist
Publicado por: Baal_30 en 8 Abril 2015, 23:03 pm
Hola Gus, perdonar el retraso, pero se me estropeó el disco duro :/

No me di cuenta de que recorría el tamaño el arraylist para meter allí los números, y como la principio es 0, pues ni entraba al for jaja

Pero ahora si mete los números, pero al mostrarlos, me muestra primero los numeros y luego todo asteriscos (*) ¿porque es esto?

Un saludo.


Título: Re: Duda con arraylist
Publicado por: Usuario Invitado en 8 Abril 2015, 23:35 pm
Podrías colocar todo el código, porque a simple vista no puedo ver el fallo para que te imprima astericos  :huh: Es decirm un ArrayList es un array dinámico, arranca con tamaño 0 y va aumentando mientras se ingresen elementos. Por lo que:

Código
  1. if(percents[i] > 4) {
  2.    hotNumbers.add(i);
  3. }

Simplemente agrega los los índices de los porcentajes mayores a 4 al ArrayList. Al final, el tamaño del ArrayList será lo mismo que los porcentajes mayores a 4, por lo que no habrán espacios en blanco. Por ésto, no entiendo cómo es posible que imprima asteriscos.


Título: Re: Duda con arraylist
Publicado por: Baal_30 en 8 Abril 2015, 23:49 pm
O-M-G

jajaja Gus no me pegues porfavor, pero me acabo de dar cuenta que son los asteriscos... Para separar los números calientes al mostrarlos, puse un System.out.println("***************************"); para que quedase más bonito, pero como al mostrar los números los mostraba con un print sin "ln", pues no hacía el salto de línea y mostraba los asteriscos a continuación de último número. Y claro, yo me pensaba que era por el bucle de los números, y eran el println con los asteriscos que puse yo  :xD :xD

Es para pegarme...

Gracias y disculpa las molestias :/


Título: Re: Duda con arraylist
Publicado por: Usuario Invitado en 9 Abril 2015, 00:06 am
Jaja suele pasar xD. No te preocupes colega, no pasa nada.


Un saludo.