hierarchischen Pfad Stellen in geordneten Liste gespeichert und die Validierungfunktionaler Stil Validierungsalgorithmus
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");
}
}
}
}
Der Algorithmus ist ziemlich einfach.
Nur Leafs oder Knoten mit allen Abkömmlingen müssen null sein.
Gültige Pfade:
"path", "to", "end"
"path", "to", null
"path", null, null
null, null, null
ungültige Pfade:
"path", null, "end"
null, null, "end"
null, "to", "end"
null, "to", null
ich für Art und Weise suchen sie in einem funktionalen Stil neu zu schreiben.
Ich glaube, Sie haben einige Tippfehler in Ihren "gültigen Pfaden", die Ihre Frage verwirrend machen. Wollten Sie Zitate um "null" setzen? – 4castle
@ 4castle thx, ich reparierte den Tippfehler – Rob
Was ist los mit nicht-funktionalen Lösung? Du hast es selbst gesagt - dein imperativer Algorithmus ist einfach und relativ einfach (ich würde nur eine zweite verschachtelte Weile entfernen, da du sie nicht brauchst). Es wird keinen Nutzen aus funktionalem Neuschreiben ziehen, und höchstwahrscheinlich wird nur die Komplexität zunehmen (ich bin mir fast sicher, dass die funktionale Implementierung eine 'Tuple'-Klasse erfordern würde). –