2017-05-08 158 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吗? 如何打印卡车列表及其所有数据?

所有代码

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

“我可以做这样的添加列表到列表2?” < - 您没有将列表添加到列表中,而是将一个List 传递给卡车构造函数。无论你是否可以做到这一点,取决于卡车类的过程中有一个构造函数定义,接受这些参数。 –

回答

0

那么,如何理解,你一直在问,如果成功的话,以list添加到list2,如果list将被初始化。我对吗?所以是的,你可以这样说,因为你的代码初始化将被编译器放到构造函数中。变量被初始化以便它们在代码中声明,所以list将在list2中被初始化。但要注意你在每个Track使用相同的list,所以如果Track改变list,它将在改为每Track

+0

我已经通过添加我所做的整个代码来编辑我的问题。我可以这样做吗?因为我已经初始化'list'和'list2',并且我想打印输出的所有列表。 –

+0

是的,你可以。但天哪,那种风格......在课堂上使用公共成员不是一个好的决定 - 你应该隐藏类的实现。成员的命名 - 写英文。 'listTruck.listPesananDealer.get(i)'这是蹩脚的:'listTruck.listPesananDealer'是列表,所以像'list2'一样使用'for'。我将'listPesananDealer'列表(作为所有其他成员)隐藏为'private'并实现'Iterable':https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html对于'Truck',我可以通过迭代器访问列表 –

相关问题