Hola a tod@s, queria saber como almacenar informacion de un arrayList<Objecto> donde objeto tiene cambios nombre, apellido, edad, etc. Lo que quiero es almacenar esta informacion en una matriz
List<P> amigas = new ArrayList<>(); P p1= new P("vanessa","navarro",32,"programadora); P p2 = new P("ana","keldysh",15,"programadora); amigas.add(p1); amigas.add(p2);
Solo tienes que sacar los datos de la lista y añadirlos en el indice correspondiente de la matriz.Yo lo he hecho un poco caótico porque he puesto las columnas de la matriz "amigasMatriz" a mano y si a la clase "P" la metes mas atributos no se añadirán, a un rato lo intento hacer y lo comento. También me parece curioso que quieras pasar datos de una lista a una matriz, personalmente me siento más cómodo trabajando con listas pero para gustos los colores . Te adjunto el código.
Código:
List<Object> amigas = new ArrayList<>(); P p1= new P("vanessa","navarro","programadora",32); P p2 = new P("ana","keldysh","programadora",15); amigas.add(p1); amigas.add(p2); int filas = amigas.size(); Object amigasMatriz[][] = new Object[filas][4]; int filaMatriz = 0; for (Object amiga : amigas) { if(amiga instanceof P) { String nombre = ((P) amiga).getNombre(); String apellido = ((P) amiga).getApellido(); int edad = ((P) amiga).getEdad(); String profesion = ((P) amiga).getProfesion(); amigasMatriz[filaMatriz][0] = nombre; amigasMatriz[filaMatriz][1] = apellido; amigasMatriz[filaMatriz][2] = edad; amigasMatriz[filaMatriz][3] = profesion; filaMatriz++; } } for(int i = 0 ; i < amigasMatriz.length ; i++) { for(int j = 0 ; j < amigasMatriz[i].length ; j++) { System.out.print(amigasMatriz[i][j]+" "); } System.out.println(""); }
Saludos
« Última modificación: 25 Noviembre 2019, 12:51 pm por MetaNoia »
Se me ha ocurrido separar en el toString de persona todos los datos por ";" para luego en la clase Main llamarlo . Asi con el método split puedes sacar todos los datos en la matriz que yo he llamado atributos por cada objeto de la clase Persona y luego los insertas.
Código:
List<Object> amigas = new ArrayList<>(); P p1= new P("vanessa","navarro","programadora",32); P p2 = new P("ana","keldysh","programadora",15); amigas.add(p1); amigas.add(p2); int filas = amigas.size(); Object amigasMatriz[][] = new Object[filas][4]; int filaMatriz = 0; for (Object amiga : amigas) { if(amiga instanceof P) { String nombre = ((P) amiga).getNombre(); String apellido = ((P) amiga).getApellido(); int edad = ((P) amiga).getEdad(); String profesion = ((P) amiga).getProfesion(); String[] atributos = amiga.toString().split(";"); for(int i = 0 ; i < atributos.length ; i++) { amigasMatriz[filaMatriz][i] = atributos[i]; } filaMatriz++; } } for(int i = 0 ; i < amigasMatriz.length ; i++) { for(int j = 0 ; j < amigasMatriz[i].length ; j++) { System.out.print(amigasMatriz[i][j]+" "); } System.out.println(""); }
Y el toString de la clase P
Código:
@Override public String toString() { return nombre+";"+apellido+";"+profesion+";"+edad; }