2017-05-08 4 views
1

Ich habe ein Objekt von PesananDealer. Es enthält diese Variablen.Wie füge ich eine Objektliste in eine andere Liste ein

private String idDealer; 
private int[] motor = new int[4]; 
public PesananDealer() { 
    } 

    public PesananDealer(String idDealer, int[] motor) { 
     this.idDealer = idDealer; 
     this.motor = motor; 
    }  

    public String getIdDealer() { 
     return idDealer; 
    } 

    public void setIdDealer(String idDealer) { 
     this.idDealer = idDealer; 
    } 

    public int[] getMotor() { 
     return motor; 
    } 

    public void setMotor(int[] motor) { 
     this.motor = motor; 
    } 

Ich habe auch ein Objekt von Truck. Es enthält diese Variablen.

public int ID; 
public List<PesananDealer> listPesananDealer = new ArrayList<PesananDealer>(); 
public int kapasitas; 
public String[] rute; 
public Truck() { 
} 

public Truck(int ID, List<PesananDealer> listPesananDealer, int kapasitas) { 
    this.ID = ID; 
    this.listPesananDealer = listPesananDealer; 
    this.kapasitas = kapasitas; 
} 
public int biaya; 

public int getID() { 
    return ID; 
} 

public void setID(int ID) { 
    this.ID = ID; 
} 

public String[] getRute() { 
    return rute; 
} 

public void setRute(String[] rute) { 
    this.rute = rute; 
} 

public List<PesananDealer> getListPesananDealer() { 
    return listPesananDealer; 
} 

public void setListPesananDealer(List<PesananDealer> listPesananDealer) { 
    this.listPesananDealer = listPesananDealer; 
} 

public void addPesanan(PesananDealer a) { 
    listPesananDealer.add(a); 
} 

public int getKapasitas() { 
    return kapasitas; 
} 

public void setKapasitas(int kapasitas) { 
    this.kapasitas = kapasitas; 
} 

public int getBiaya() { 
    return biaya; 
} 

public void setBiaya(int biaya) { 
    this.biaya = biaya; 
} 

Und jetzt möchte ich Liste von LKW machen und es mit Daten einfügen.

List<PesananDealer> list = new ArrayList<PesananDealer>() { 
      { 
       for (int i = 0; i < dealer.length; i++) { 
        add(new PesananDealer(dealer[i], arrays[i])); 
       } 
      } 
     }; 

List<Truck> list2 = new ArrayList<Truck>(){ 
      { 
       for (int i = 0; i < 5; i++) { 
        add(new Truck(i,list,kapasitas[i])); 
       } 
      } 
     }; 

kann ich die Liste in list2 einfügen, indem ich es so mache? Wie kann ich die Liste des LKW und alle seine Daten drucken?

alle meine Code

public static void main(String[] args) { 
     int[][] arrays = {{3, 4, 5, 6}, 
          {22, 12, 2, 2}, 
          {1, 1, 3, 5}, 
          {6, 5, 2, 1}, 
          {14, 2, 4, 2}}; 
     String[] dealer = {"B", "C", "D", "E", "F"}; 
     String [] rute = new String [10]; 
     int [] kapasitas = {34, 32, 36, 32,30}; 
     List<PesananDealer> list = new ArrayList<PesananDealer>() { 
      { 
       for (int i = 0; i < dealer.length; i++) { 
        add(new PesananDealer(dealer[i], arrays[i])); 
       } 
      } 
     }; 

     List<Truck> list2 = new ArrayList<Truck>(){ 
      { 
       for (int i = 0; i < 5; i++) { 
        add(new Truck(i,list,kapasitas[i])); 
       } 
      } 
     }; 

     for (Truck listTruck : list2) { 
      System.out.println("Mobil ke "+listTruck.getID()+" memiliki kapasitas "+listTruck.getKapasitas()); 
      for (int i = 0; i < 5; i++) { 
       System.out.println(listTruck.listPesananDealer.get(i)); 
      } 
     } 
    } 
+0

„kann ich die Liste in list2 hinzufügen, indem Sie es wie das zu tun?“ <- Sie fügen der Liste keine Liste hinzu, aber Sie übergeben eine Liste an den Truck-Konstruktor. Ob das möglich ist oder nicht, hängt natürlich davon ab, ob die Klasse Truck einen Konstruktor definiert hat, der diese Argumente akzeptiert. –

Antwort

0

So, wie ich es verstehe, du hast gefragt worden, ob es list-list2 hinzufügen klappt und wenn list initialisiert werden. Habe ich recht? Ja, das könnte man so sagen, denn Ihr Code Initialisierer wird von einem Compiler zum Konstruktor gebracht. Variablen werden initialisiert, damit sie im Code deklariert werden. Daher wird list initialisiert, wenn sie in list2 eingegeben wird. Aber beachten Sie die gleiche list in jedem Track verwenden, also wenn Tracklist ändert, wird es in jedem geändert werden Track

+0

Ich bearbeite bereits meine Frage, indem ich den ganzen Code, den ich gemacht habe, hinzufüge. Kann ich das so machen? weil ich die 'liste' und 'liste2' bereits initialisiert habe und die ausgabe meiner gesamten liste ausdrucken möchte. –

+0

Ja, Sie können. Aber Gott, dieser Stil ... Es ist keine gute Entscheidung, öffentliche Mitglieder in Klassen zu verwenden - Sie sollten die Implementierung von Klassen verstecken. Benennung von Mitgliedern - schreibe es englisch. 'listTruck.listPesananDealer.get (i)' es ist lahm: 'listTruck.listPesananDealer' ist eine Liste, also verwende' for' wie du es zuvor für 'list2' getan hast. Ich würde die Liste "listPesananDealer" (wie alle anderen Mitglieder) als "private" verbergen und "Iterable" implementieren: https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html für 'Truck' und ich hatte den Zugriff auf die Liste von Iterator gegeben –

Verwandte Themen