elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda, código sencillo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda, código sencillo.  (Leído 5,058 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Duda, código sencillo.
« en: 3 Marzo 2010, 02:39 am »

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.
Código
  1. no los elimina a todos. Mi código es el siguiente:
  2. import java.util.*;
  3. public class *****
  4. {
  5. public static void main(String[] args)
  6. {
  7. ArrayList<Integer> valores = new ArrayList<Integer>();
  8. int valor, limite = 20;
  9. for(int i = 0; i < limite; i++)
  10. {
  11. valor = (int)(Math.random() * 100);
  12. valores.add(valor);
  13. }
  14. System.out.println("Deteccion de multiplos de 5 y 2");
  15. for(int i = 0; i < valores.size(); i++)
  16. {
  17. if(valores.get(i) % 5 == 0)
  18. {
  19. System.out.println(valores.get(i) + " <--- 5");
  20. }
  21. else if(valores.get(i) % 2 == 0)
  22. {
  23. System.out.println(valores.get(i) + " <--- 2 ");
  24. } else {
  25. System.out.println(valores.get(i));
  26. }
  27. }
  28. // Eliminacion:
  29. for(int i = 0; i < valores.size(); i++)
  30. {
  31. if(valores.get(i) % 5 == 0)
  32. {
  33. valores.remove(i);
  34. limite--;
  35. } else if(valores.get(i) % 2 == 0)
  36. {
  37. valores.remove(i);
  38. limite--;
  39. }
  40. }
  41.                        // Verificar
  42. System.out.println("Deteccion de multiplos de 5 y 2");
  43. for(int i = 0; i < valores.size(); i++)
  44. {
  45. if(valores.get(i) % 5 == 0)
  46. {
  47. System.out.println(valores.get(i) + " <--- 5");
  48. }
  49. else if(valores.get(i) % 2 == 0)
  50. {
  51. System.out.println(valores.get(i) + " <--- 2");
  52. } else {
  53. System.out.println(valores.get(i));
  54. }
  55. }
  56.  
  57. }
  58. }

Y esta es la salida:

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

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda, código sencillo.
« Respuesta #1 en: 3 Marzo 2010, 02:46 am »

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 Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Duda, código sencillo.
« Respuesta #2 en: 3 Marzo 2010, 02:49 am »

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

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: Duda, código sencillo.
« Respuesta #3 en: 3 Marzo 2010, 04:25 am »

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 :xD

Un Saludo,
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda, código sencillo.
« Respuesta #4 en: 3 Marzo 2010, 05:39 am »

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 :P), asi para obtener el elemento (x,y) de la matriz solo pides get(len_fila*y+x);
Saludos











En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Duda, código sencillo.
« Respuesta #5 en: 3 Marzo 2010, 22:45 pm »

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 Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Duda, código sencillo.
« Respuesta #6 en: 6 Marzo 2010, 02:01 am »

Agradezco la sugerencia, desconozco Java, es por eso que usé el ArrayList.

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con código PHP+MySQL sencillo
PHP
mokoMonster 2 2,729 Último mensaje 19 Marzo 2012, 21:27 pm
por mokoMonster
Transformar Codigo Sencillo de VB6 a C++
Programación C/C++
revenge1252 8 4,813 Último mensaje 6 Junio 2012, 17:47 pm
por revenge1252
[Novato] Problema con do-while en codigo sencillo
Java
Mitsu 3 4,683 Último mensaje 9 Febrero 2013, 15:47 pm
por Debci
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines