Wie um zu überprüfen, ob ein Stream<String> enthält weitere Stream<String> in Java 8
Ich habe zwei Stream
Stream<String> first= ...
Stream<String> second= ...
Beide zahlen haben. Angenommen, die erste Datei ist 1 zu 1000, und die zweite ist 25 bis 35. Ich möchte, um zu überprüfen, ob die erste enthält die zahlen der Sekunden ein.
first.filter(s-> !s.contains(second.toString())
.collect(Collectors.toList());
Wenn ich ersetzen second.toString()
mit "10" dann funktioniert es aber wie kann ich überprüfen, den gesamten Strom und nicht nur ein char oder ein string?
- Was meinst du mit "enthält eine stream"? Meinst du, dass ein element aus
first
enthält jede der Zeichenfolgen vorhanden in der zweiten? Dass jedes der Elemente der zweiten erscheinen irgendwo in der ersten? Was? - Dies ist nicht eine gute Verwendung für
Stream
. Wenn die streams sind nicht unendlich ist (die kann man nicht wirklich überprüfen), sammeln Sie inSet
s oderList
s und vergleichen Sie diese mitcontainsAll
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie sammeln die
second
- stream und speichern Sie alle Ihre Werte in geeignete Daten-Verteilung.Z.B. mit einem
Set
:.collect(Collectors.toList())
ist. Allgemein ist es effizient fürMyClass.getCollection()
zurück ein Strom, um zu ermöglichen Lektüre der Sammlung, ohne zu schreiben (außerhalb MyClass").