Autor
|
Tema: Duda, código sencillo. (Leído 5,058 veces)
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Hola, estoy iniciandome en Java, y tengo un ejercicio de eliminar los múltiplos de 5 y de 2 en un ArrayList, creo que mi algoritmo está bien, pero no encuentro porque no me elimina todo. Se supone que es una lista, y voy eliminando la posición "i" en caso de que sea multiplo de 5 o 2. no los elimina a todos. Mi código es el siguiente: import java.util.*; public class ***** { public static void main (String[] args ) { ArrayList<Integer> valores = new ArrayList<Integer>(); int valor, limite = 20; for(int i = 0; i < limite; i++) { valor = (int)(Math. random() * 100); valores.add(valor); } System. out. println("Deteccion de multiplos de 5 y 2"); for(int i = 0; i < valores.size(); i++) { if(valores.get(i) % 5 == 0) { System. out. println(valores. get(i ) + " <--- 5"); } else if(valores.get(i) % 2 == 0) { System. out. println(valores. get(i ) + " <--- 2 "); } else { System. out. println(valores. get(i )); } } // Eliminacion: for(int i = 0; i < valores.size(); i++) { if(valores.get(i) % 5 == 0) { valores.remove(i); limite--; } else if(valores.get(i) % 2 == 0) { valores.remove(i); limite--; } } // Verificar System. out. println("Deteccion de multiplos de 5 y 2"); for(int i = 0; i < valores.size(); i++) { if(valores.get(i) % 5 == 0) { System. out. println(valores. get(i ) + " <--- 5"); } else if(valores.get(i) % 2 == 0) { System. out. println(valores. get(i ) + " <--- 2"); } else { System. out. println(valores. get(i )); } } } }
Y esta es la salida: Deteccion de multiplos de 5 y 2 59 39 94 <--- 2 9 51 48 <--- 2 92 <--- 2 62 <--- 2 46 <--- 2 94 <--- 2 88 <--- 2 4 <--- 2 25 <--- 5 22 <--- 2 66 <--- 2 63 36 <--- 2 50 <--- 5 71 3 Deteccion de multiplos de 5 y 2 59 39 9 51 92 <--- 2 46 <--- 2 88 <--- 2 25 <--- 5 66 <--- 2 63 50 <--- 5 71 3
|
|
« Última modificación: 3 Marzo 2010, 02:45 am por Leo Gutiérrez. »
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Cuando elimines un elemento en la siguiente iteración no tienes que incrementar, para solucionarlo con el for que tienes ahi, cada que elimines decrementa i.Eso de momento fue lo que vi. Saludos
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Era eso, gracias.
Otra duda, ¿como puedo obtener la longitud de una matriz bidimensional con ArrayList?
O sea, sacar filas y columnas.
|
|
« Última modificación: 3 Marzo 2010, 03:11 am por Leo Gutiérrez. »
|
En línea
|
|
|
|
Leyer
Desconectado
Mensajes: 786
leyer@elhacker.net
|
Era eso, gracias.
Otra duda, ¿como puedo obtener la longitud de una matriz bidimensional con ArrayList?
O sea, sacar filas y columnas.
Eso no lo entendi Un Saludo,
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
No entendí muy bien, la pregunta que digamos, pero si vas a trabajar con una matriz bidimiencional, de manera lineal, siempre tienes que tener en mente la longitud de cada fila (numero de columnas en una fila ), asi para obtener el elemento (x,y) de la matriz solo pides get(len_fila*y+x); Saludos
|
|
|
En línea
|
|
|
|
sapito169
Desconectado
Mensajes: 628
|
el arraylist no es la mejor opcion para trabajar con tablas la mejor opcion es defaultablemodel otra opcion mucho mas sencilla es un arreglo bidimensional se puede lograr trabajar contablas en el array list pero no tendriam muy poco sentido seria que cada propiedad de un objeto sea como una columna es decir para llenar una tabla de Personas con las columas edad nombre y sexo asi
edad |nombre | sexo 13 | luchito | h 14 |maria | m 15 | alberto | h
serai asiendo esto
ArrayList list <Personas>=new ArrayList<Personas>(); Persona lucho =new Persona(13, luchito,h); list.AddElement(lucho); Persona maria =new Persona(14, maria,m); list.AddElement(maria); Persona alberto =new Persona(15, alberto,h); list.AddElement(alberto);
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Agradezco la sugerencia, desconozco Java, es por eso que usé el ArrayList.
Saludos.
|
|
|
En línea
|
|
|
|
|
|