- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Liste von Listen zusammenfassen in Template
Hallo,
in einem Template habe ich eine Liste von Listen set_listOfLists erzeugt und wรผrde diese gern zu einer Liste set_listAll zusammenfassen, also die Elemente aller dieser Listen hintereinander hรคngen in eine groรe Liste.
Bis jetzt mache ich es so:
$CMS_SET(set_listAll, [])$
$CMS_FOR(for_list, set_listOfLists)$
$CMS_SET(void, set_listAll.addAll(for_list))$
$CMS_END_FOR$
Geht das irgendwie kรผrzer, z.B. durch Operationen direkt auf set_listOfLists mit Javas flatMap?
Viele Grรผรe,
Christian
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Christian,
mit .flatMap geht es nicht (da kann man die nรถtigen Objekte nicht erzeugen/รผbergeben).
Was aber genauso einfach geht ist die Nutzung von .fold():
$CMS_SET(set_listOfLists, [["A", "B"], ["C", "D"], ["X", "Y", "Z"]])$ $-- Beispiel-Eingabe --$
$CMS_SET(set_result, set_listOfLists.fold(s:[], x->s.add(x)))$
set_result beinhaltet dann die um eine Ebene "flachere" Liste.
Grund hierfรผr ist, dass es in der Template-Syntax eine separate "Spezialimplementierung" von List.add(List) gibt, die wie ein .addAll(Collection) funktioniert - aber im Unterschied zu diesem die ergรคnzte Liste als Ergebnis zurรผckliefert (im Gegensatz zu boolean bei addAll).
Siehe auch hier.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Christian,
mit .flatMap geht es nicht (da kann man die nรถtigen Objekte nicht erzeugen/รผbergeben).
Was aber genauso einfach geht ist die Nutzung von .fold():
$CMS_SET(set_listOfLists, [["A", "B"], ["C", "D"], ["X", "Y", "Z"]])$ $-- Beispiel-Eingabe --$
$CMS_SET(set_result, set_listOfLists.fold(s:[], x->s.add(x)))$
set_result beinhaltet dann die um eine Ebene "flachere" Liste.
Grund hierfรผr ist, dass es in der Template-Syntax eine separate "Spezialimplementierung" von List.add(List) gibt, die wie ein .addAll(Collection) funktioniert - aber im Unterschied zu diesem die ergรคnzte Liste als Ergebnis zurรผckliefert (im Gegensatz zu boolean bei addAll).
Siehe auch hier.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke, Michael, funktioniert einwandfrei!

