Berichtsgenerator mit Erweiterungen für verschachtelte Sammlungen

Kotlin Hard extensions

Aufgabe «Berichtsgenerator mit Erweiterungen für verschachtelte Sammlungen»

Schreiben Sie ein Kotlin-Programm, das mit Hilfe von Extension-Funktionen für List<Map<String, Any>> die Berichtserstellung implementiert: Nacheinander werden ein Filtern nach dem Wert eines String-Schlüssels, ein Sortieren nach einem Integer-Schlüssel, ein Gruppieren nach einem String-Schlüssel und das Berechnen der Summe eines Integer-Feldes innerhalb jeder Gruppe angewendet. Eingabedaten: Zahl N (Anzahl der Datensätze), dann N Zeilen der Form 'key1=val1,key2=val2,...'. Ausgabedaten: Für jede Gruppe 'group_key: sum' ausgeben, wobei sum die Summe der Werte des Feldes 'score' für die Datensätze der Gruppe ist. Wenn nach dem Filtern keine Datensätze mehr übrig sind, 'empty' ausgeben.

Eingabeformat

Ganze Zahl N (1 ≤ N ≤ 1000). Dann N Zeilen, jede enthält Paare 'Schlüssel=Wert', getrennt durch Kommas. Schlüssel: 'name' (String), 'group' (String), 'score' (Int). Werte dürfen nur lateinische Buchstaben, Ziffern und Leerzeichen enthalten. Alle Datensätze sind gültig.

Ausgabeformat

Zeilen der Form 'group_key: sum' für jede Gruppe nach der Verarbeitung, sortiert nach group_key aufsteigend. Wenn die resultierende Liste leer ist, 'empty' ausgeben.

Beispiele

Beispiel 1

EINGABE
1 name=Frank,group=B,score=100
AUSGABE
B: 100
main.kt