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

Objeto compuesto de objetos como mostrar?

Estas en el tema de Objeto compuesto de objetos como mostrar? en el foro de Java en Foros del Web. Pues eso voy a intentar explicarme sin tener que poner el código porque es muy extenso y lo que necesito creo que será sencillo. El ...
  #1 (permalink)  
Antiguo 13/12/2012, 07:32
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Objeto compuesto de objetos como mostrar?

Pues eso voy a intentar explicarme sin tener que poner el código porque es muy extenso y lo que necesito creo que será sencillo.

El asunto es que estoy haciendo una aplicación en java, esa aplicación digamos que contiene las clases Examen, Pregunta y Respuesta (Y una clase Principal con su main) el tema es que yo tengo diferentes objetos examen guardados en un hashmap, cada objeto examen tiene como atributo un ArrayList de preguntas y cada pregunta tiene como atributo un ArrayList de respuestas. No se si me he explicado bien, si no lo he hecho decídmelo y lo intento de nuevo o pongo trozos de código.

La pregunta es ¿como muestro toda la información que tiene asociada un objeto examen? es decir el examen se encontrarlo con su key pero una vez localizado ¿como recorro el ArrayList de preguntas y para cada pregunta el ArrayList de respuestas?

Espero haberme explicado bien jeje saludos y gracias.

PD: si lo se soy nuevo y no me he presentado....
  #2 (permalink)  
Antiguo 13/12/2012, 07:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Objeto compuesto de objetos como mostrar?

Con bucles for anidados, cada uno asociado a su objeto.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 13/12/2012, 08:56
 
Fecha de Ingreso: diciembre-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: Objeto compuesto de objetos como mostrar?

Fuzzylog podrias poner un ejemplo?? yo cuando muestro los datos de un hashmap lo hago asi :
Código PHP:
case 6//Buscar examen
                
                
System.out.println("Ha seleccionado Buscar Examen.");
                
System.out.println("Introduzca el id del examen: ");
                
int id_busca Integer.parseInt(stdin.readLine());
            
System.out.println(p.examenes.get(id_busca).toString()); 
Y se que en el toString es donde tengo que ir buscando y mostrando los ArrayList de preguntas y los de respuestas ¿pero como?
  #4 (permalink)  
Antiguo 13/12/2012, 09:17
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Objeto compuesto de objetos como mostrar?

Creo que ya te voy a poner la respuesta muy masticada, pero luego tendrás que adaptarlo tú a tu hashMap.

Supongamos que tienes lo siguiente (yo lo hice para arraylists)

Clase Examen tiene int idExamen, String materiaExamen, List<Pregunta> preguntas.
Clase Pregunta tiene int idPregunta, String textoPregunta, List<Respuesta> respuestas.
Clase Respuesta tiene int idRespuesta, String textoRespuesta.
Cada clase tiene sus getters y setters para cada atributo.
Obtienes un ArrayList<Examen> examenes en tu query.

El bucle sería algo así como:

if (examenes != null && !examenes.isEmpty()) {
for (Examen examen : examenes) {
System.out.println("Examen de la materia: ".concat(examen.getMateriaExamen()));
if (examen.getPreguntas() != null && !examen.getPreguntas().isEmpty()) {
for (Pregunta pregunta : examen.getPreguntas()) {
System.out.println("Pregunta Realizada: ".concat(pregunta.getTextoPregunta()));
if (pregunta.getRespuestas() != null && !pregunta.getRespuestas().isEmpty()) {
for (Respuesta respuesta : pregunta.getRespuestas()) {
System.out.println("Respuesta posible: ".concat(respuesta.getTextoRespuesta()));
}
} else {
System.out.println("No existen respuestas para esta pregunta");
}
}
}
}
}
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: clase, compuesto, objeto, objetos
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 02:49.