1
私はJavaを使用してオブジェクトを再帰的に反復しようとしています。私の例を単純化するために、このクラスがSimpleと呼ばれ、0からnまでの他のSimpleオブジェクトを含むことができるIDとリストを含んでいて、それらのSimpleオブジェクトは0〜n個の他のSimpleオブジェクト、Javaのオブジェクトのリストでオブジェクトを反復する最良の方法
私がやりたいことは、SimpleとIDを渡して、自分のメソッドでそのIDと一致するSimpleを返すことです。 - それは空のリストを持っているという単純なに当たるとして、私の方法は、すぐに終了return文で
public static Simple getSimpleById(Simple simple, int id) {
if (simple.getId() == id) {
return simple;
} else {
for (Simple s : simple.getSimpleList()) {
return getSimpleById(s, id);
}
}
return null; // no match found
}
問題は、再帰的メソッド呼び出しである:以下は私が書かれている方法です。 return文がなければ、一致が見つかるとSimpleが呼び出し側に返され、メソッドは反復処理を継続します。
私は再帰で何をする必要があるのでしょうか、間違った木を吠えますか?私はそれがここで問題を引き起こしているリストだと思う、これを行うための良い方法がありますか?私はこれを試して考えていなかった理由を
に変更し、それはうわー、それは(何もしゃれが意図していない)ので、簡単です、私は知りません。速やかな応答をありがとう、これは完全に動作しているようだ。 – SourMonk