Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con ArrayList en Java

Hola buenas, estoy practicando con los ArrayList y pues estoy teniendo problemas con ,mi codigo. El valor de se incrementa a 1 en el primer i++ pero despues sigue siendo valor 1 cosa que no entiendo. Luego a parte, al mostrar los numeros solo me muestra el ultimo numero, cuando en teoria aun teniendo este problema deberia mostrarme el numero que guardo en la posicion 0 y el ultimo que se guarda erroneamente en la posicion 1.
Aqui os dejo el codigo. Gracias de antemano, salu2.


import java.util.*;
public class Prueba{
public static void main(String args[]){

añadirNumeros();

}


public static void añadirNumeros(){
ArrayList<Integer> prueba = new ArrayList();
Scanner tcl = new Scanner(System.in);
int a;
int opc;

System.out.println("Inserte un numero");
a = tcl.nextInt();
int i=0;
prueba.add(i,a);

System.out.println("Desea añadir mas numeros?\n1.Si\n2.No");
opc = tcl.nextInt();

if(opc == 1){

//System.out.println(i);
i++;
añadirNumeros();

}
else
System.out.println("Sus numeros son: "+prueba);
}
}

febrero 17, 2015 | Registered Commenterjota


import java.util.*;

public class Prueba {
private static ArrayList<Integer> prueba = new ArrayList();

public static void main(String args[]) {

añadirNumeros();

}

public static void añadirNumeros() {

Scanner tcl = new Scanner(System.in);
int a;
int opc;

System.out.println("Inserte un numero");
a = tcl.nextInt();
int i = 0;
prueba.add(i, a);

System.out.println("Desea añadir mas numeros?\n1.Si\n2.No");
opc = tcl.nextInt();

if (opc == 1) {

// System.out.println(i);
i++;
añadirNumeros();

} else
System.out.println("Sus numeros son: " + prueba);
}
}

febrero 18, 2015 | Unregistered Commenterdani

En cada llamada a tu método añadirNumeros, se crea una nueva List; de ahí el problema que observas.
No es necesario que declares y asignes un índice, para añadir elementos a una List.

http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#add-E-

public class Prueba {

private static final List<Integer> prueba = new ArrayList<>();
private static Scanner tcl;

public static void main(String args[]) {
tcl = new Scanner(System.in);
añadirNumeros();
}

public static void añadirNumeros() {
System.out.println("Inserte un numero");
prueba.add(tcl.nextInt());
System.out.println("Desea añadir mas numeros?\n1.Si\n2.No");
if (tcl.nextInt() == 1) {
añadirNumeros();
} else {
System.out.println("Sus numeros son: " + prueba);
}
}
}

febrero 18, 2015 | Registered Commenterchoces

Muchas gracias choces, con las modificaciones de tu codigo funciona perfecto :D

febrero 18, 2015 | Unregistered Commenterjota