| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 5:33 am | | | Título: ArrayList dentro de Otro ArrayList |
| Hola hay forma de usar un ArrayList dentro de otro ArrayList?
tengo que hacer una aplicación por consola q consiste de un profesor q puede crear test
- cada test tiene un titulo y contiene sus propias preguntas y respuestas.
mi idea es tener un ArrayList de Test y otro ArrayList de preguntas y meter el ArrayList de preguntas a cada posición de ArrayList del test.
osea tener cada casillero de ArrayList del test contiene mas casilleros de preguntas y respuestas.
alguien tiene algún ejemplo como hacer eso?... Gracias!
(en realidad ya termine toda la parte del menú, alta baja de alumnos y profesores, pero me falta eso del test...)  |
|
| Volver arriba | |
 |
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 5:51 am | | | Título: |
| Que esto gráficamente seria así:
|
|
| Volver arriba | |
 |
Sorancio

Registrado: 29 May 2009 Mensajes: 1157 Ubicación: España
| Publicado: 28/06/2012 5:54 am | | | Título: |
| Claro, una lista puede tener todo aquello que herede de Object, así que cualquier clase:
List<List<String>> myList = new ArrayList<List<String>>(10); _________________ Mi página web (en inglés): |
|
| Volver arriba | |
 |
|
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 5:58 am | | | Título: |
| | Perfecto, creo que esto era lo que queria, voy a probar eso, en realidad yo probe en crear varios clases y el contructor entra un arraylist, pero no me permitia por el tipo de datos...asi q esto que m decis creo q seria ideal. Gracias nuevamente, Slds! |
|
| Volver arriba | |
 |
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 7:25 am | | | Título: |
| | Sorancio escribió: | Claro, una lista puede tener todo aquello que herede de Object, así que cualquier clase:
List<List<String>> myList = new ArrayList<List<String>>(10); |
otra pregunta... si quiero incluir 2 tipo en un mismo arrayList se puede?... intente por ej asi:
private ArrayList<<Test> ArrayList<Preguntas>> tp = new ArrayList<<Test> ArrayList<Preguntas>>();
o
private ArrayList<Test; ArrayList<Preguntas>> tp = new ArrayList<Test; ArrayList<Preguntas>>();
o
private ArrayList<Test, ArrayList<Preguntas>> tp = new ArrayList<Test, ArrayList<Preguntas>>();
no me deja, como seria?... |
|
| Volver arriba | |
 |
Sorancio

Registrado: 29 May 2009 Mensajes: 1157 Ubicación: España
| Publicado: 28/06/2012 7:40 am | | | Título: |
| No se puede: si quieres que un ArrayList contenga más de dos tipos, deberás hacerlo mediante un genérico o una interfaz. Si los tipos tienen relación, usa de tipo la clase base, por ejemplo, si quieres poner Persona y Perro, podrías usar la clase Animal.
Si no tienen ninguna relación tendrás que usar el tipo Object. _________________ Mi página web (en inglés): |
|
| Volver arriba | |
 |
|
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 8:39 am | | | Título: |
| disculpa q te molesta tanto, es que no lo puedo sacar...je
(Clase menuIniciar)
private ArrayList<Test> test = new ArrayList();
//. //. //Arriba de todo un choclo de codigo tengo declarado al ArrayList //. //.
public void AltaTest() { System.out.println("Ingrese nombre del test."); String titulo = dato.next(); System.out.println("Ingrese descripcion del test."); String desc = dato.next(); test.add(new Test(titulo, desc));
int ultimaPosicion = test.size(); //el programa me corre hasta aca y me tira una Exception in thread "main" java.lang.IndexOutOfBoundsException: test.get(ultimaPosicion).AddQuestion(); //Pide preguntas para el test System.out.println(test.get(ultimaPosicion).getTitle()); // muestra titulo del test test.get(ultimaPosicion).PrintQuestionTest(); // muestra preguntas del test }
(Clase Test) public class Test {
private String title; private String Description; Scanner linea = new Scanner(System.in); ArrayList<Preguntas> pp = new ArrayList<Preguntas>();
public Test(String title, String Description) { this.title = title; this.Description = Description; }
public String getDescription() { return Description; }
public String getTitle() { return title; }
public void AddQuestion() { String salir; do { System.out.println("La pregunta es: "); String pregunta = linea.next(); System.out.println("La respuesta es: "); String rta = linea.next(); pp.add(new Preguntas(pregunta, rta)); System.out.println("Desea crear otra pregunta (S/N): "); salir = linea.next(); } while ("N".equals(salir)); }
public void PrintQuestionTest(){ System.out.println("***** Lista de Preguntas *****"); for (int j = 0; j < pp.size(); j++) {//ahora imprimiremos nuestro ArrayList de preguntas sobre este test System.out.println(j + ")" + pp.get(j).Preguntas); } } } |
|
| Volver arriba | |
 |
Sorancio

Registrado: 29 May 2009 Mensajes: 1157 Ubicación: España
| Publicado: 28/06/2012 9:13 am | | | Título: |
| El índice en una lista es de 0 a N-1. Si la lista es de 10, de 0 a 9. _________________ Mi página web (en inglés): |
|
| Volver arriba | |
 |
soulrata
Registrado: 26 Abr 2012 Mensajes: 8 Ubicación: Argentina
| Publicado: 28/06/2012 7:07 pm | | | Título: |
| | media hora de intento, y recien ahora entendi de lo q me estas diciendo...jajaja, Gracias fue de gran ayuda! |
|
| Volver arriba | |
 |
|
|