Foro sobre Java SE > Problema con ArrayList en Java
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);
}
}
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);
}
}
}
Muchas gracias choces, con las modificaciones de tu codigo funciona perfecto :D
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);
}
}