Foro de elhacker.net

Programación => Java => Mensaje iniciado por: cunian en 18 Mayo 2017, 03:51 am



Título: Contenedores anidados. (Arraylist)
Publicado por: cunian en 18 Mayo 2017, 03:51 am
buenas noches, ayer mi profesor de programación orientada a objetos nos dejo un proyecto, el cual tengo que realizar con contenedores anidados, Estuve buscando en google y no encuentro nada relacionado con el tema. Alguien me puede sacar de la duda a que se refiere el profesor cuando dice contenedores anidados. Estamos trabajando con contenedores(Arraylist) pero no se como anidar esta estructura.

gracias.


Título: Re: Contenedores anidados. (Arraylist)
Publicado por: 3n31ch en 18 Mayo 2017, 04:24 am
¿Contenedores? Lo mas cercando seria la clase Container de awt o los Wrappes ... pero si dices que es un array list, ok.  :xD (que extraña forma de decirles).

Quizas se refiera a hacer un arrayList de arrayList o algo asi  ;D

Código
  1.        ArrayList<ArrayList> containerContainer = new ArrayList<>();
  2.  
  3.        ArrayList<Integer> ai = new ArrayList<>();
  4.        ai.add(2);
  5.        ai.add(3);
  6.        ai.add(4);
  7.        ai.add(5);
  8.  
  9.        containerContainer.add(ai);
  10.  
  11.        for(ArrayList<Integer> arr : containerContainer) {
  12.            for(Integer i : arr) {
  13.                System.out.println(i);
  14.            }
  15.        }
  16.  
  17.  



Sera eso?

Esto de inventar nombres  :xD :xD


Título: Re: Contenedores anidados. (Arraylist)
Publicado por: cunian en 18 Mayo 2017, 04:50 am
la verdad no estoy seguro, muy interesante lo que me acaba de mostrar. No sabia que se podía crear un Arraylist de tipo Arraylist y dentro de ellos tener mas listas. Aunque acostumbro a trabajar con LinkedList.


Título: Re: Contenedores anidados. (Arraylist)
Publicado por: 3n31ch en 18 Mayo 2017, 05:00 am
la verdad no estoy seguro, muy interesante lo que me acaba de mostrar. No sabia que se podía crear un Arraylist de tipo Arraylist y dentro de ellos tener mas listas. Aunque acostumbro a trabajar con LinkedList.

Seria lo mismo
Código
  1. LinkedList<LinkedList> containerContainer = new LinkedList<>();
  2.        LinkedList<Integer> ai = new LinkedList<>();
  3.        ai.add(2);
  4.        ai.add(3);
  5.        ai.add(4);
  6.        ai.add(5);
  7.        containerContainer.add(ai);
  8.        System.out.println(containerContainer);

de hecho la salida es:
Código:
[[2, 3, 4, 5]]

Ni modo, con lo que me dices es lo unico que se me ocurre


Título: Re: Contenedores anidados. (Arraylist)
Publicado por: cunian en 24 Mayo 2017, 06:45 am
Hola, mi profesor dijo que el anidamiento lo hiciera de la siguiente manera.

que cuando le diera los atributos a la Abstracción del objeto, dentro de esos atributos ira un contenedor(Arraylist). Y creara una lista(Contenedor) que guardar ese objeto. asi el objeto que se guarda en un Arraylist llevara otro Arraylist dentro de el. Por ejemplo.

Creo la clase con sus respectivos atributos, y uno de esos atributos es un lista de tipo LinkedLis.

Código
  1. import java.util.Date;
  2. import java.util.LinkedList;
  3.  
  4.  
  5.  
  6. public class Abs_departamentos {
  7.    private String nombre;
  8.    private long codigo;
  9.    private Abs_empleados emple;
  10.    private Date fecha_dirige;
  11.    public LinkedList<Abs_proyectos> listaproyecto = new LinkedList<>();
  12.  
  13.    public String getNombre() {
  14.        return nombre;
  15.    }
  16.  
  17.    public void setNombre(String nombre) {
  18.        this.nombre = nombre;
  19.    }
  20.  
  21.    public long getCodigo() {
  22.        return codigo;
  23.    }
  24.  
  25.    public void setCodigo(long codigo) {
  26.        this.codigo = codigo;
  27.    }
  28.  
  29.    public Abs_empleados getEmple() {
  30.        return emple;
  31.    }
  32.  
  33.    public void setEmple(Abs_empleados emple) {
  34.        this.emple = emple;
  35.    }
  36.  
  37.    public Date getFecha_dirige() {
  38.        return fecha_dirige;
  39.    }
  40.  
  41.    public void setFecha_dirige(Date fecha_dirige) {
  42.        this.fecha_dirige = fecha_dirige;
  43.    }
  44.  
  45.    public LinkedList<Abs_proyectos> getListaproyecto() {
  46.        return listaproyecto;
  47.    }
  48.  
  49.    public void setListaproyecto(LinkedList<Abs_proyectos> listaproyecto) {
  50.        this.listaproyecto = listaproyecto;
  51.    }
  52.  
  53.    public Abs_departamentos(String nombre, long codigo, Abs_empleados emple, Date fecha_dirige, LinkedList listaproyecto) {
  54.        this.nombre = nombre;
  55.        this.codigo = codigo;
  56.        this.emple = emple;
  57.        this.fecha_dirige = fecha_dirige;
  58.        this.listaproyecto = listaproyecto;
  59.    }
  60.  
  61. }
  62.  


creo una lista que va guardar departamentos y dentro de los objetos que se guardaran en esta lista llevara, otro linkedlist dentro de ella.
de esta forma se anidan dos contenedores.

Código
  1. public static LinkedList<Abs_departamentos> lista_departamentos = new LinkedList<>();
  2.  
  3.    public static void agregar_departamento(Abs_departamentos x) {
  4.        lista_departamentos.add(x);
  5.    }
  6.  
  7.  
  8.  



Título: Re: Contenedores anidados. (Arraylist)
Publicado por: 3n31ch en 24 Mayo 2017, 06:59 am
Ya, lo entiendo. Es un anidado "no directo". De igual forma no estábamos tan desviados.

Supongo que ya tienes solución a tu problema, así que no comentare mas al respecto. Pero ten ojo con la forma que escribes tu código.

Pasate por aquí: https://foro.elhacker.net/java/aporte_buenas_practicas_y_convenciones_en_java_parte_uno_convenciones-t428844.0.html (https://foro.elhacker.net/java/aporte_buenas_practicas_y_convenciones_en_java_parte_uno_convenciones-t428844.0.html)

Acá detallo las convenciones de Java, que aunque parece una estupidez... con solo este pequeño cambio, tu código parecerá mucho mas profesional.

Saludos, y suerte con tu código!


Título: Re: Contenedores anidados. (Arraylist)
Publicado por: marvin49 en 24 Mayo 2017, 11:27 am
si estás en ingeniería podría ser que en poo se apoyen en la asignatura de estrategias, hay se estudian más cosas sobre almacenamiento de datos.


Enviado desde mi iPhone utilizando Tapatalk