Foros del Web » Programación para mayores de 30 ;) » Java »

Problema en borrar elementos del Array List

Estas en el tema de Problema en borrar elementos del Array List en el foro de Java en Foros del Web. Hola, estoy haciendo una aplicacion que verifique si los numeros ingresados forman un numero capicua. El problema es, que una vez que me hiciera la ...
  #1 (permalink)  
Antiguo 19/08/2012, 19:03
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 10 meses
Puntos: 1
Pregunta Problema en borrar elementos del Array List

Hola, estoy haciendo una aplicacion que verifique si los numeros ingresados forman un numero capicua.

El problema es, que una vez que me hiciera la comprobacion (independientemente si es capicua o no) pudiera borrar los elementos ingresados uno por uno, pero mi aplicacion no realiza tal accion, espero puedan ayudarme a identificar que puede ser, ya llevo rato viendo cual puede ser la razon.

Aqui mi codigo:
Código JAVA:
Ver original
  1. package capicua;
  2. import java.io.*;
  3. import java.util.ArrayList;
  4.  
  5. public class Capicua {
  6.  
  7.    
  8. public static void main(String[] args) throws IOException {
  9.    
  10.        
  11.                 System.out.print("Ingrese Cantidad de Numeros: ");
  12.        
  13.                 String numer;
  14.                 int n = Integer.parseInt(in.readLine());
  15.                
  16.                 ArrayList<Object> Numeros = new ArrayList<Object>(n);
  17.                
  18.                
  19.         try{
  20.            
  21.             for (int i=0; i<n;i++){
  22.                 System.out.println("Numero ");
  23.                 Numeros.add(Integer.parseInt(in.readLine()));
  24.                                
  25.             }
  26.         }catch(Exception error){
  27.             System.out.println(error);
  28.         }
  29.         boolean Capicua = true;
  30.         for (int i = 0; i< n/2; i++){
  31.             if (Numeros.get(i) != Numeros.get(n-i-1)){
  32.                 Capicua = false;
  33.                 break;
  34.                
  35.             }
  36.         }
  37.         if (Capicua){
  38.             System.out.println("Es capicua");
  39.         }else{
  40.             System.out.println("No es capicua");
  41.                        
  42.         }
  43.  
  44.    
  45. //Ahora borrar el numero
  46. System.out.println("Ingrese Numero A Eliminar: ");
  47. numer = in.readLine();
  48. for(int i=0;i<Numeros.size();i++){
  49. if(Numeros.get(i).equals(numer)){
  50. Numeros.remove(i);
  51. }
  52. //Con esto se mostrara como esta el arreglo una vez eliminado el elemento
  53. System.out.println("\nContenido del arreglo:");
  54. for(Object num: Numeros){
  55. System.out.println(num);
  56. }
  57. }
  58. }
  59. }
__________________
Don't look back, and try learning everyday, no matters how...
  #2 (permalink)  
Antiguo 20/08/2012, 00:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 8
Respuesta: Problema en borrar elementos del Array List

Te da algun tipo de excepcion?

No funciona porque estas comparando un entero con un String y nunca son iguales cuando lees el numero lo tienes que parar a int, cuando lo recuperas del array debes hacer un cast a int y comparar con el ==.

El recorrido del Array esta mal hecho debes hacerlo al reves

for(int i=0;i<Numeros.size();i++){

cambialo por esto

for (int i= Numeros.size(); i<0;i--)

lo tienes que hacer asi porque si borras un elemento el array por ejemplo tiene 4 elementos y borras el primero, en la siguiente iteracion pasa te saltas un elemento, porque el segundo pasa a la primera posicion, pero la i pasa a valor 1 que indica la segunda que era la tercera anterior.
  #3 (permalink)  
Antiguo 20/08/2012, 07:19
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 10 meses
Puntos: 1
Pregunta Respuesta: Problema en borrar elementos del Array List

Cita:
Iniciado por Erickvk Ver Mensaje
Te da algun tipo de excepcion?

No funciona porque estas comparando un entero con un String y nunca son iguales cuando lees el numero lo tienes que parar a int, cuando lo recuperas del array debes hacer un cast a int y comparar con el ==.

El recorrido del Array esta mal hecho debes hacerlo al reves

for(int i=0;i<Numeros.size();i++){

cambialo por esto

for (int i= Numeros.size(); i<0;i--)

lo tienes que hacer asi porque si borras un elemento el array por ejemplo tiene 4 elementos y borras el primero, en la siguiente iteracion pasa te saltas un elemento, porque el segundo pasa a la primera posicion, pero la i pasa a valor 1 que indica la segunda que era la tercera anterior.
Ya intente lo que me dijiste, pero no me muestra como queda el arreglo al final:
System.out.println("Ingrese Numero A Eliminar: ");
numer = in.readLine();
for(int i= Numeros.size(); i<0;i--){
if(Numeros.get(i).equals(numer)){
Numeros.remove(i);
}
System.out.println("\nContenido del arreglo:");
for(Object num: Numeros){
System.out.println(num);

No sale nada :/

Gracias por responder :)
__________________
Don't look back, and try learning everyday, no matters how...
  #4 (permalink)  
Antiguo 20/08/2012, 12:46
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Problema en borrar elementos del Array List

yo creo se le cuatrapateo al compa... es asi: for (int i= Numeros.size(); i>0;i--) el signo es "mayor que", y no "menor que" por que si no no se iba a cumplir la condicion...
__________________
De nada, hay te encargo +1...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:04.