Inklusive takeWhile() für StreamsJava

Java-Forum
Guest
 Inklusive takeWhile() für Streams

Post by Guest »

Ich möchte wissen, ob es eine Möglichkeit gibt, das letzte Element des Streams hinzuzufügen, das anhand der Bedingung der Methode takeWhile() getestet wurde. Ich glaube, ich möchte etwas Ähnliches wie die takeUntil()-Methode von RxJava erreichen.
Ich vermute, dass es dafür keinen direkten Weg gibt (korrigieren Sie mich, wenn ich mich irre) , aber ich würde gerne wissen, ob es eine geeignete Problemumgehung gibt, um dies zu erreichen, die mir jetzt bekannt ist.
Ich habe Stack Overflow durchsucht, mit wenig bis gar keinem Erfolg. Wenn Sie glauben, dass es Threads gibt, die meine Probleme lösen könnten, würde ich sie auf jeden Fall gerne sehen.
Wenn Sie sich die peek() des folgenden Codes ansehen, werden Sie sehen, dass Nummer 5 wird anhand der Bedingung takeWhile() geprüft, kommt aber nie in der Bedingung forEach() an:

Code: Select all

IntStream.of(1, 3, 2, 5, 4, 6)
.peek(foo -> System.out.println("Peek: " + foo))
.takeWhile(n -> n < 5)
.forEach(bar -> System.out.println("forEach: " + bar));
Das erwartete Ergebnis besteht darin, dass das letzte Element, das anhand der Bedingung von takeWhile geprüft wird, beim System.out::println von forEach ankommt . In diesem Fall sind es 5.
Vielen Dank an alle!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post