Tengo problemas al querer agregar datos a mi arraylist si continuo ingresando datos sin salir al menu, al momento de mandar a mostrarlos siempre me manda el ultimo dato agregado. Este es mi código
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
//import java.util.ArrayList;
public class MenuSistema {
private static Scanner teclado = new Scanner(System.in);
private static int op;
static ArrayList <Persona> Contactos = new ArrayList <Persona>();
public static void main(String[] args)
{
MenuPrincipal();
}
//MENU PRINCIPAL DEL SISTEMA
public static void MenuPrincipal()
{
System.out.println("\n");
System.out.println("MENU DE OPCIONES DEL SISTEMA");
System.out.println("1.-PERSONAS");
System.out.println("2.-ORGANIZACION");
System.out.println("3.-NEGOCIOS");
System.out.println("4.-ACTIVIDADES");
System.out.println("5.-SALIR");
op=Integer.parseInt(teclado.nextLine());
//SWITCH PARA SELECCIONAR LAS OPCIONES DEL SISTEMA CON SON: PERSONAS, ORGANIZACIONES, NEGOCIOS Y ACTIVIDADES.
switch(op)
{
case 1:
MenuPersonas();
break;
default :
System.exit(0);;
}
}
//MENU DE OPCIONES DE PERSONAS.
public static void MenuPersonas()
{
int op;//VARIABLE PARA EL MENU DE OPCIONES
System.out.println("\n");
System.out.println("MENU DE OPCIONES DEL SISTEMA");
System.out.println("1.-ALTAS PERSONAS");
System.out.println("2.-BAJAS PERSONAS");
System.out.println("3.-BUSCAR PERSONA");
System.out.println("4.-MOSTAR PERSONA");
System.out.println("5.-REGRESAR AL PRINCIPAL");
op = Integer.parseInt(teclado.nextLine());
switch (op)
{
case 1:
System.out.println("1.-ALTAS PERSONAS");
MenuSistema.AgregarPersonas(Contactos);
MenuPersonas();
break;
case 2:
System.out.println("2.-BAJAS PERSONAS");
break;
case 3:
System.out.println("3.-BUSCAR PERSONA");
break;
case 4:
System.out.println("4.-MOSTRAR PERSONAS");
MenuSistema.MostrarPersonas(Contactos);;
MenuPersonas();
break;
default :
MenuPrincipal();
break;
}
}
public static void MostrarPersonas(ArrayList <Persona> Contactos)
{
Iterator it = Contactos.iterator();
int i=0;
if(!it.hasNext())
System.out.println("No Hay Contactos");
else
while (it.hasNext())
{
it.next();
System.out.println("CONTACTO N°:"+(i+1));
System.out.println("NOMBRE:"+Contactos.get(i).getNombre());
i++;
}
}
public static void AgregarPersonas(ArrayList <Persona> Contacctos)
{
Persona Datos=new Persona();// INICIALIZANDO VARIABLE DATOS
Scanner teclado = new Scanner(System.in);
String cont;
do
{
System.out.println("INGRESE EL NOMBRE DE LA PERSONA");
Datos.setNombre(teclado.nextLine().toUpperCase());
Contactos.add(Datos);
System.out.println("DESEA CONTINUAR S/N:");
cont = teclado.nextLine();
}
while (cont.equals("s") || cont.equals("S"));
}
}