Java wandelt eine Liste mit einer Eltern-Kind-Beziehung in eine Baumstruktur um

Projektanforderungen:

Während des Docking-Prozesses des Projekts gibt der Aufgerufene eine Liste von Objekten zurück, die id und parentId enthält, aber die zurückgegebenen Daten haben keine hierarchische Struktur, und der Aufrufer muss sie zu einer Struktur auf Baumebene zusammenfügen;

Bedarfsanalyse:

Da die zurückgegebene Liste ungeordnet ist, müssen Sie zuerst die Struktur der obersten Ebene finden und dann das Kind mit der parentId abrufen, eine rekursive Schleife ausführen und angeben, dass das Kind keine Nachkommeninformationen hat.

Umsetzung der Anforderungen:

Zwei Wege fallen mir ein:
der erste, als erstes fällt mir die zirkuläre Liste ein, die eine Liste mehrfach durchläuft und jedes Mal nur eine Ebene findet, und die realisiert werden kann, der zweite, zuerst
aggregiert gemäß der parentId und führt dann eine Aggregation auf der aggregierten Map-Rekursion durch;

Relativ gesehen ist die zweite Methode besser geeignet, muss aber die Situation berücksichtigen, dass parentId nicht existiert;

  • Suchen Sie zuerst die oberste Ebene, und die Filterbedingung lautet, dass parentId nicht existiert:
//没有parentid
        List<TemplateInfo> topList =
            templateInfoList

Guess you like

Origin blog.csdn.net/weixin_42551921/article/details/127708249