Ich habe kein vorhandenes Äquivalent gefunden, aber die folgende Methode sollte funktionieren:
%Vor%Ich habe den Code nur kurz mit den folgenden Eingaben getestet:
%Vor%int
s sind ihre eigenen Schlüssel, also keine Umwandlung Strings
werden entsprechend ihrem Hex-Wert - 9 int
s abgebildet
int
-Werte standardmäßig gleich sind) String
eingefügt
Die folgenden (korrekten) Ergebnisse werden gedruckt:
%Vor%Natürlich sind weitere eingehende Tests erforderlich, aber ich glaube, dass diese Implementierung korrekt ist. Es könnte auch effizienter sein, ich bin offen für Vorschläge.
Join ist nur syntaktisch Zucker für Stream.flatMap()
, wie in diesem Artikel erklärt . Betrachten Sie dieses Beispiel:
Das Ergebnis ist:
%Vor% Im obigen Beispiel entspricht flatMap()
(INNER) JOIN
, während die Operation filter()
des verschachtelten Streams der ON
-Klausel entspricht.
jOOλ ist eine Bibliothek, die innerJoin()
und andere Join-Typen implementiert, um darüber zu abstrahieren, z. um Stream-Inhalte zu puffern, falls Sie zwei Stream
Instanzen statt zwei Collection
Instanzen verbinden möchten. Mit jOOλ würdest du dann schreiben:
... welches druckt (die Ausgabe sind Tupel, was mehr wie die Semantik von SQL's Semantik ist):
%Vor%(Disclaimer, ich arbeite für die Firma hinter jOOλ)
Ich kam auch von C # und vermisste diese Funktion. Ein großer Vorteil wäre, lesbaren Code zu haben, indem Absicht ausgedrückt wird. Also schrieb ich meinen eigenen streamjoin , der wie C # Enumerable.Join () funktioniert. Plus: Es toleriert Null-Tasten.
%Vor%