Foro sobre Java SE > ARRAYLIST NO GUARDA DATOS CORRECTAMENTE
BUEN DIA,
TENGO UN PROBLEMA CON MI CODIGO , EL PROBLEMAS ES QUE CUANDO INGRESO UN NUEVO PARTICIPANTE LO QUE HACE EL PROFGRAMA ES PONER TODOS LOS DATOS EN LA MISMA POSICION DEL ANTIGUO.
//
public class TRABAJOF {
static Scanner leer;
static ArrayList <Participante> listaParticipante;
static Participante oParticipante;
public static void main(String[] args) {
leer = new Scanner(System.in);
listaParticipante = new ArrayList();
//Objecto Auxiliar
oParticipante = new Participante();
int Op;
String REPETIR;
do{
REPETIR = "S";
Op = Menu ();
switch (Op){
case 1 ://1. REGISTRO DE PARTICIPANTE
do{
REGISTRODEPARTICIPANTE();
System.out.println("¿DESEA REGISTRAR OTRO PARTICIPANTE? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 2 ://2. REGISTRO DE CALIFICACIONES
do{
REGISTRODECALIFICACIONES();
System.out.println("¿DESEA INGRESAR MAS CALIFICACIONES? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 3 ://3. BUSQUEDA DE PARTICIPANTE
do{
BUSQUEDADEPARTICIPANTE();
System.out.println("¿DESEA REALIZAR OTRA BUSQUEDA? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 4 ://4. ACTUALIZAR PARTICIPANTE
do{
ACTUALIZARPARTICIPANTE();
System.out.println("¿DESEA REALIZAR UNA NUEVA ACTUALIZACION A OTRO PACIENTE? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 5 ://5. ELIMINACION DE PARTICIPANTE
do{
ELIMINACIONDEPARTICIPANTE();
System.out.println("¿DESEA ELIMINAR A OTRO PACIENTE? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 6 ://6. IMPRIMIR CERTIDICADO DE PARTICIPANTE
do{
IMPRIMIRCERTIDICADODEPARTICIPANTE();
System.out.println("¿DESEA IMPRIMIR OTRO CERTIFICADO? (S/N): ");
REPETIR = leer.next();
}while(REPETIR.toUpperCase().equals("N") == false);
break;
case 7 ://7. REPORTE
REPORTES();
break;
case 8 ://8. FIN
System.out.println((char)27 + "[34;42mGracias por usar nuestro programa.\n");
break;
default :
System.out.println((char)27 + "[31;43mOpcion incorrecta\n");
}
}while(Op != 8);
}
public static void REGISTRODEPARTICIPANTE(){
String DNI;
int pos;
oParticipante = new Participante();
System.out.println(“**REGISTRAR PARTICIPANTE**”);
System.out.println(“PARTICIPANTE Nº ” + (listaParticipante.size()+1));
System.out.print(“DNI: “);
DNI= leer.next();
pos = BuscarxDNI(DNI);
if(pos > -1){
System.out.println(“ERROR;ESTE DNI YA ESTA REGISTRADO”);
System.out.println(“INGRESE NUEVO DNI:”);
DNI=leer.next();
oParticipante.setDNI(DNI);
}
oParticipante.setDNI(DNI);
System.out.print(“NOMBRE: “);
oParticipante.setNOMBRE(leer.next());
System.out.print(“APELLIDO: “);
oParticipante.setAPELLIDO(leer.next());
System.out.print(“SEXO (1.MASCULINO/2.FEMENINO): “);
if(leer.nextInt() == 1){
oParticipante.setSEXO(“M”);
} else{
oParticipante.setSEXO(“F”);
}
listaParticipante.add(oParticipante);
}
BUEN DIA,
TENGO UN PROBLEMA CON MI CODIGO , EL PROBLEMAS ES QUE CUANDO INGRESO UN NUEVO PARTICIPANTE LO QUE HACE EL PROFGRAMA ES PONER TODOS LOS DATOS EN LA MISMA POSICION DEL ANTIGUO.
//ESE ES EL METODO REGISTRAR PARTICIPANTE
public static void REGISTRODEPARTICIPANTE(){
String DNI;
int pos;
oParticipante = new Participante();
System.out.println(“**REGISTRAR PARTICIPANTE**”);
System.out.println(“PARTICIPANTE Nº ” + (listaParticipante.size()+1));
System.out.print(“DNI: “);
DNI= leer.next();
pos = BuscarxDNI(DNI);
if(pos > -1){
System.out.println(“ERROR;ESTE DNI YA ESTA REGISTRADO”);
System.out.println(“INGRESE NUEVO DNI:”);
DNI=leer.next();
oParticipante.setDNI(DNI);
}
oParticipante.setDNI(DNI);
System.out.print(“NOMBRE: “);
oParticipante.setNOMBRE(leer.next());
System.out.print(“APELLIDO: “);
oParticipante.setAPELLIDO(leer.next());
System.out.print(“SEXO (1.MASCULINO/2.FEMENINO): “);
if(leer.nextInt() == 1){
oParticipante.setSEXO(“M”);
} else{
oParticipante.setSEXO(“F”);
}
listaParticipante.add(oParticipante);
}