2017-05-08 20 views
1

私はPesananDealerのオブジェクトを持っています。これらの変数が含まれています。他のリストにオブジェクトのリストを追加する方法

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

また、トラックのオブジェクトもあります。これらの変数が含まれています。

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

そして、私はトラックのリストを作成し、データを挿入したいと思います。

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

私はそれをそうすることでリストをリスト2に追加できますか? トラックの一覧とそのすべてのデータを印刷するにはどうすればよいですか?それはlistが初期化される場合list2listを追加して動作するかどうか

私は理解してどのように私のコード

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

「私はそのようにそれをすることによってLIST2にリストを追加することができますか?」 < - リストをリストに追加するのではなく、リストをトラックコンストラクタに渡しています。 Wetherかどうかは、Truckクラスのコースに依存します。これらの引数を受け入れるように定義されたコンストラクタがあります。 –

答えて

0

のすべて、あなたが求めてきました。私は正しい?だから、コードイニシャライザはコンパイラによってコンストラクタに置かれるので、そうすることができます。変数はコードで宣言される順序で初期化されるため、listlist2に置かれると初期化されます。しかしTracklistを変更した場合、それはに変更されますので、あなたは、各Trackで同じlistを使用に注意しておきTrack

+0

私は既に作成したコード全体を追加して自分の質問を編集しています。私はそれを好きにすることはできますか?私はすでに 'list'と 'list2'を初期化しているので、リストのすべての出力を出力したいからです。 –

+0

はい、できます。しかし、そのスタイルは...クラスでパブリックメンバーを使用することは良い判断ではありません。クラスの実装を非表示にする必要があります。メンバーの名前を付ける - それを英語で書く。 'listTruck.listPesananDealer.get(i)'それは不自由です: 'listTruck.listPesananDealer'はlistですので、' list2'の前と同じように 'for'を使います。 'listPesananDealer'リスト(他のメンバーと同じ)を' private'として隠し、 'Iterable'を実装します:https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html 'Truck'と私はイテレータでリストにアクセスしました –

関連する問題