Java - Enlazar simplemente dos listas de diferente tipo de dato

 
Vista:
Imágen de perfil de Francisco
Val: 85
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Enlazar simplemente dos listas de diferente tipo de dato

Publicado por Francisco (56 intervenciones) el 07/06/2018 20:25:38
Hola estimados:

Estuve viendo videos, tanto de listas simplemente como doblemente enlazadas, lo unico que encuentro es que las listas que enlazo son de tipo nodo.
¿hay alguna forma en java de enlazar dos listas de tipo de dato diferente?
Por ej que yo quiera enlazar dos encabezados con sus respectivos cuerpos de una factura comercial(comprobante).
Por ej
En el main declaro los objetos con sus valores de tipo de dato primitivo y/o String, si es un tipo de dato de clase generica o implementada por el usuario, va con null.
Ahora bien.
Lo que me tendria que quedar es algo asi

Encabezado enc 1 = new Encabezado("pepe",0001,'a',"madrid")

Cuerpo c1 = new Cuerpo(1111,"bufandas",700.00)

Encabezado enc2 = new Encabezado("juan",0002,'b',"toledo")
Cuerpo c2 = new Cuerpo(5555,"gorros de lana",450.00)
Me tendria que cuando muestre por pantalla
Factura 1:
Encabezado:
Pepe, 0001,a,madrid
Cuerpo:
1111,bufandas,700.00
Factura 2:
Encabezado:
juan, 0002, b,toledo
Cuerpo:
5555, gorros de lana, 450.00

Cabe mencionar que en el encabezado va el nombre del cliente, numero de factura, tipo de factura y sucursal.
En el cuerpo va el codigo del producto, detalle, subtotal.

Si quiero sacar el total, en el main deberia declarar una variable de tipo int llamada total y hay dos formas:
Total = cuerpo1.getSubtotal + cuerpo2.getsubtotal.
O hacer un for each
1
2
3
for(Cuerpo i:cuerposfacturas) {
    Total = Total + i.getSubTotal;
}
Pero ahi al usar el bucle ya hay que implementar la lista en la clase Cuerpo

Sino tambien puedo implementar la lista en la clase cuerpo y en el main hacer total = cuerposfacturas(0).getSubTotal + cuerposfacturas(1).getSubTotal

Y asi con los demas.

Esas son mis dudas y en especial como puedo hacer tanto para enlazar dos listas de diferentes tipos de dato creando los objetos de las dos listas en el main como lo mostre arriba como para implementar directamente las dos listas (encabezado, cuerpo) en sus respectivas clases y enlazarlas en forma simple y pasar las dos listas como parametros a la clase padre que es factura y de ahi enlazar esas dos listas de tipos diferentes de datos en la clase padre y crear objetos en el main de tal forma que me llame al metodo del encabezado primero en el main y en el siguiente objeto al cuerpo de la primera factura, luego que el siguiente objeto llame al encabezado de la siguiente factura y el siguiente objeto llame al cuerpo de la factura dentro de esta que es la siguiente.

Se puede enlazar listas de diferente tipo de dato, y no del mismo como vi en videos?, necesito ideas en codigo de estas dudas.

Y tambien, respecto al post anterior como puedo pasar ArrayList (listas) como parametros a metodos de otras clases implementados en las clases originales que son las que tienen implementadas las listas en el constructor y que estas van a ser enviadas como parametros a metodos de otras clases.
De tal forma que cree un objeto, llame al metodo que tiene la lista como parametro que adquirio una clase de otra clase (sin que necesariamente sea la clase padre

Necesito las ideas en un codigo reducido o mejor dicho un codigo justo.

Pasa que estoy haciendo un trabajo de investigacion y lo tengo que entregar mañana.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Enlazar simplemente dos listas de diferente tipo de dato

Publicado por Yamil Bracho (2315 intervenciones) el 07/06/2018 20:34:08
Tendrias dos clases, definidas asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Cuerpo {
    int codigo;
    string nombre;
    double precio;
}
 
class Encabezado {
   String nombre;
   String codigo;
   String letra;
   string Ciudad;
 
   Cuerpo cuerpo;
}

Y para usarlas

1
2
3
4
Encabezado enc 1 = new Encabezado("pepe",0001,'a',"madrid");
Cuerpo c1 = new Cuerpo(1111,"bufandas",700.00);
 
enc1.cuerpo = c1;  // o enc1.cuerpo = new Cuerpo(1111,"bufandas",700.00);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Francisco
Val: 85
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Enlazar simplemente dos listas de diferente tipo de dato

Publicado por Francisco (56 intervenciones) el 07/06/2018 21:05:17
Muchas gracias yamil.
Vos sabes que implementé una lista en una clase padre y despues otra lista aparte en otra clase en sus respectivos constructores. Quiero pasarlas como parametros de una clase a otra clase en un metodo. Pero cuando creo el objeto en el main y llamo al metodo de la clase que recibio la lista de otra clase para que lo muestre, no me muestra nada. Y eso que importé las librerias ArrayList y List en ambas clases y a las listas creadas de la clase que le iba a pasar como parametro a otra les puse private o protected.

Mi idea es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Jugador{
 
String nombre;
int edad;
  }
.class AyudanteDeCampo{
   private List<Jugador> jugadores;
 public AyudanteDeCampo(){
    jugadores = new ArrayList<>();
Jugador j1 = new Jugador("juan",37);
jugadores.add(j1);
Jugador j2 = new Jugador("pepe",22);
jugadores.add(j2);
 
      }
 
}
class PreparadorFisico{
 
  public void dirigir(//como paso la lista jugadores de la clase AyudanteDeCampo como parametro?){
 
         for(Jugador i:this.jugadores){
 
         System.out.println( i.getNombreJugador() + " " + i.getEdadJugador());
 
  }
 
}
Lo hice asi, poniendole private o protected a las listas, y pasando el arraylist e importando las librerias ArrayList y List, pero no se muestra nada.
Por qué será?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Enlazar simplemente dos listas de diferente tipo de dato

Publicado por Yamil Bracho (2315 intervenciones) el 07/06/2018 21:25:59
Seria algo como

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
AyudanteDeCampo adc = new AyudanteDeCampo(....);
 
// Creas lista de jugadores
 List<Jugador> jugadores = new ArrayList<Jugador>();
jugadores.add( new Jugador("Jugador1",....);
jugadores.add( new Jugador("Jugador2",....);
...
 
// En ayudanteDeCampo define un metodos que reciba la lista
adc.setJugadores( jugadores );
 
// Y agrega un metodo que retorne la lista, getJugadoresList retorna List<Jugador>
foreach(Jugador j j in adc.getJugadoresList())
    System.out.println(j);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Francisco
Val: 85
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Enlazar simplemente dos listas de diferente tipo de dato

Publicado por Francisco (56 intervenciones) el 07/06/2018 21:36:19
Muchas Gracias yamil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar