2014-04-05 63 views
2

我有一個類組成:更新類的一個變量在類的ArrayList中的java

public class Components { 

    int numberOfNets; 
    String nameOfComp; 
    String nameOfCompPart; 
    int numOfPin; 

    public components(int i, String compName, String partName, int pin) { 
     this.numberOfNets = i; 
     this.nameOfComp = compName; 
     this.nameOfCompPart = partName; 
     this.numOfPin = pin; 
    } 

} 

內的另一個類我創建的組件類的ArrayList:在

List<Components> compList = new ArrayList<Components>(); 

後來代碼,我加入在列表中的元素以這樣的方式

compList.add(new Components(0,compName,partName,0)); 

看,這裏numberOfNets和012組件類中的變量以0值啓動。但是這些值在後面的代碼中被計算/增加,因此我需要更新每個列表元素中只有這兩個變量的新值。現在從ArrayList doc我得到更新列表元素使用其索引set操作的想法。但我很困惑如何在類的ArrayList中設置/更新某個類的特定變量。我只需要更新這兩個提到的變量,而不是所有Components類中的四個變量。有沒有辦法做到這一點?

+0

如果我的回答爲你工作。請把它標記爲正確答案..謝謝和快樂編碼:) –

回答

4

你應該的getter/setter添加到您的組件類,以便外部類可以更新組件的成員

public class Components { 

    private int numberOfNets; 
    private String nameOfComp; 
    private String nameOfCompPart; 
    private int numOfPin; 

    public components(int i, String compName, String partName, int pin) { 
     setNumberOfNets(i); 
     setNameOfComp(compName); 
     setNameOfCompPart(partName); 
     setNumOfPin(pin); 
    } 

    public void setNumberOfNets(int numberOfNets) { 
     this.numberOfNets = numberOfNets; 
    } 

    // Similarly other getter and setters 
} 

您現在可以通過使用下面的代碼修改任何數據,因爲得到()將返回引用原始對象等等修改此對象將在ArrayList中更新

compList.get(0).setNumberOfNets(newNumberOfNets); 
2

示例代碼。

public class Main { 

    public static void main(String[] args) { 

     List<Components> compList = new ArrayList<Components>(); 

     compList.add(new Components(0, "compName", "partName", 0)); 

     System.out.println(compList.get(0).toString()); 

     compList.get(0).numberOfNets = 3; 
     compList.get(0).numOfPin = 3; 

     System.out.println(compList.get(0).toString());  
    } 

} 

您的課程。

public class Components { 

    int numberOfNets; 
    String nameOfComp; 
    String nameOfCompPart; 
    int numOfPin; 

    public Components(int i, String compName, String partName, int pin) { 
     this.numberOfNets = i; 
     this.nameOfComp = compName; 
     this.nameOfCompPart = partName; 
     this.numOfPin = pin; 
    } 

    public String toString() { 

     return this.numberOfNets + " " + nameOfComp + " " + nameOfCompPart 
      + " " + numOfPin; 
    } 

} 

輸出:

0 COMPNAME零件名稱0

3 COMPNAME零件名稱3

相關問題