アルゴリズムは非常に簡単です機能的なスタイルの検証アルゴリズム
List<String> path = Lists.newArrayList("path","to","end");
Iterator<String> iterator = path.iterator();
while (iterator.hasNext()) {
if (iterator.next() == null) {
while (iterator.hasNext()) {
if (iterator.next() != null) {
throw new Exception("Invalid path");
}
}
}
}
階層順序付きリストに保存されているパスとその検証を想像してみてください。
すべての子孫を持つリーフまたはノードのみがnullである必要があります。
有効なパス:
"path", "to", "end"
"path", "to", null
"path", null, null
null, null, null
無効なパス:
"path", null, "end"
null, null, "end"
null, "to", "end"
null, "to", null
私は機能的なスタイルでそれを書き換えるための方法を探しています。
あなたの質問を混乱させる「有効なパス」にいくつかのタイプミスがあると思います。 'null'の周りに引用符を置くことを意味しましたか? – 4castle
@ 4castle thx、私はタイプミスを修正しました – Rob
機能しない解決策は何が問題なのですか?あなたは自分自身で言いました - あなたの命令的アルゴリズムは簡単で比較的単純です(私はあなたがそれを必要としないので、2番目の入れ子になっている間だけ削除します)。関数の書き換えから利益を得ることはなく、たぶん複雑さが増します(関数実装には、例えば、 'Tuple'クラスが必要です)。 –