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 ;-)
A la hora de añadir objectos a la lista solo tienes que pasarle un objecto de tipo Persona por ejemplo
Persona persona = new Persona(...);
lista.add(persona);
Queria cargar un arraylist 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);
Object amigasss[][];
amigasss <- amigas;
Para que me salga asi.
nombre, aellido, edad, profesion
"vanessa","navarro",32,"programadora);
"ana","keldysh",15,"programadora);
Era para poder leerlo de una matriz con 2 for a esa tabla. :laugh:
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 :xD.
Te adjunto el 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
es verdad nosotras tambien esa parte de las columnas las tuvimos que hacer a mano, no se si alguien de buen corazon sepa hacerlo automatico :huh:
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.
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
@Override
public String toString()
{
return nombre+";"+apellido+";"+profesion+";"+edad;
}