Hallo liebe Community,
ich habe folgendes Problem. Und zwar blicke ich generell noch immer nicht ganz bei Generics durch.
Die unten angeführte Methode soll Einträge in Gruppen einteilen. Sie verwendet zwei Funktionsparameter:
Der erste Funktionsparameter groupingFn berechnet aus den Keys und Werten der Einträge einen Wert (von Typ G) für die Gruppierung.
Der zweite Funktionsparameter valueFn berechnet dann den Wert (von Typ R), der in die Gruppierung aufgenommen werden soll.
Ergebnis ist eine Map mit den Werten aus G für die Keys und Listen mit Werten von Typ R. Das heißt, für alle Einträge, die gleichen Gruppierungswert liefern, werden die Ergebnisse der Funktion valueFn in die entsprechende Liste aufgenommen.
Nun mein Problem ist, dass ich gerade etwas auf der Leitung stehe und nicht durchblicke wie ich die beiden Funktionsparameter aufrufen kann. (1x Key berechnen, 1x Wert berechnen) Genauer gesagt, ich verstehe nicht wie die Werte für die Gruppierungen berechnet werden können.
Eigentlich dürfte das ja nicht allzu schwer sein. Ich gehe davon aus, das sollte doch mit einer forEach-Schleife und den beiden Funktionsparameter-Aufrufen zu lösen sein.
Bei Bedarf kann ich auch das gesamte Interface reinstellen.
danke und lg.
ich habe folgendes Problem. Und zwar blicke ich generell noch immer nicht ganz bei Generics durch.
Die unten angeführte Methode soll Einträge in Gruppen einteilen. Sie verwendet zwei Funktionsparameter:
Der erste Funktionsparameter groupingFn berechnet aus den Keys und Werten der Einträge einen Wert (von Typ G) für die Gruppierung.
Der zweite Funktionsparameter valueFn berechnet dann den Wert (von Typ R), der in die Gruppierung aufgenommen werden soll.
Ergebnis ist eine Map mit den Werten aus G für die Keys und Listen mit Werten von Typ R. Das heißt, für alle Einträge, die gleichen Gruppierungswert liefern, werden die Ergebnisse der Funktion valueFn in die entsprechende Liste aufgenommen.
Nun mein Problem ist, dass ich gerade etwas auf der Leitung stehe und nicht durchblicke wie ich die beiden Funktionsparameter aufrufen kann. (1x Key berechnen, 1x Wert berechnen) Genauer gesagt, ich verstehe nicht wie die Werte für die Gruppierungen berechnet werden können.
Eigentlich dürfte das ja nicht allzu schwer sein. Ich gehe davon aus, das sollte doch mit einer forEach-Schleife und den beiden Funktionsparameter-Aufrufen zu lösen sein.
Bei Bedarf kann ich auch das gesamte Interface reinstellen.
danke und lg.
Java:
// group
public default <G, R> Map<G, List<R>> group(BiFunction<? super K, ? super V, G> groupingFn,
BiFunction<? super K, ? super V, R> valueFn) {
Map<G, List<R>> resultMap = new ArrayMap<>();
for (Entry<K, V> element : this) {
...
}
}