arraylist to matriz

Iniciado por Beginner Web, 17 Noviembre 2019, 22:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

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  ;-)
7w7

mr-medi

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);

<?php
       header
("Location: TheHackerWay");

Beginner Web

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:




7w7

mr-medi

#3
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

<?php
       header
("Location: TheHackerWay");

Beginner Web

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:
7w7

mr-medi

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;
    }

<?php
       header
("Location: TheHackerWay");