2016-04-04 156 views
0

我想要實現的是隻更新對象的值,只知道他的編號。我如何獲得具有相應ID的對象,以便更新屬性? 我試圖使用樹的簡單示例使這個問題更一般化。希望這會使問題更清晰,而不僅僅是粘貼我的項目代碼。

類森林通過編號獲取java對象

public class forest { 
    public forestName; 

    public forest(String forestName){ 
     this.forestName=forestName; 
    } 
    updateTreeName(int id, String Name){ 
     // Here I need to update the name of the tree with that specific ID 
    } 

    public static void main(String[] args) { 
     forest greenforest = new forest(); 
     // create some tree's in the greenforest. 
     greenforest.updateTreeName(4, "red leafe"); 
    } 
} 

分類

public class tree { 
    public String treeName; 
    public int id; 
    public tree(int id, String treeName){ 
     this.treeName=treeName; 
     this.id=id; 
    } 
} 
+2

有很多方法:保留一個'Map ',並通過id找到'tree'對象。在'tree'上實現'.equals()'方法並將其放入'Set';遍歷所有查看名稱的「樹」對象。這些要求將帶來更好的答案(編輯'forest'到'tree')。 – KevinO

+0

您遍歷您的收藏並進行更改。 –

+0

類名一般都是大寫。 – ifly6

回答

1

使用HashMap保持的對象。然後使用get方法獲取給定ID的對象。

public class Forest { 
    public String forestName; 

    HashMap<Integer, Tree> trees = new HashMap<>(); 

    public Forest(String forestName){ 
     this.forestName=forestName; 

     //initialize trees 
     trees.put(4, new Tree(4, "redleaef")); 
    } 

    public void updateTreeName(int id, String Name){ 
     trees.get(id).treeName = Name; 
    } 

    public static void main(String[] args) { 
     Forest greenforest = new Forest("name"); 
     // create some tree's in the greenforest. 
     greenforest.updateTreeName(4, "red leafe"); 
    } 
} 
+0

謝謝!你以前的編輯也非常流行。我會在2分鐘內接受這個答案(stackoverflow限制我) – yoano