Duda con arraylist

Iniciado por Baal_30, 3 Abril 2015, 14:47 PM

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

Baal_30

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 (java) [Seleccionar]
public static ArrayList<Integer> numerosCalientes = new ArrayList<Integer>();
public static int[] numSalidos = new int[37];
public static double[] porcentajeNum = new double[37];

//CALCULAR PORCENTAJE Y METERLO EN ARRAY
for(int i = 0 ; i<porcentajeNum.length;i++){
porcentajeNum[i]=(numSalidos[i]*100)/numerosTotal;
}

//CALCULAR NUMEROS CALIENTES Y METERLO EN ARRAYLIST
for(int i = 0; i<numerosCalientes.size();i++){
if(porcentajeNum[i]>4){
Integer numCal = (Integer) i;
numerosCalientes.add(numCal);
}
}


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 (java) [Seleccionar]
Iterator<Integer> it = numerosCalientes.iterator();
while(it.hasNext()){
System.out.print(it.next()+" - ");
}


Gracias de antemano y un saludo ;)
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

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 (java) [Seleccionar]
for(Integer current : numerosCalientes) {}
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Baal_30

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.
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

#3
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 (java) [Seleccionar]

if(percents[i] > 4) {
    hotNumbers.add(i);
}


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.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Baal_30

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 :/
«La suerte es el cuidado de los detalles». -Winston Churchill

Usuario Invitado

#5
Jaja suele pasar xD. No te preocupes colega, no pasa nada.


Un saludo.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein