2016-04-04 23 views
0

私が達成しようとしているのは、オブジェクトの値を自分のIDだけで更新することです。対応するIDを持つオブジェクトを取得するにはどうすればプロパティを更新できますか? 私はツリーを使った簡単な例を使って、この質問をより一般的なものにしようとしました。うまくいけば、ここで私のプロジェクトコードを貼り付けるよりも、問題がより明確になります。

クラスの森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'に入れます。その名前を見る '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

関連する問題