Wie kann ich einen Stream beenden, wenn ich keinen Wert für die Beendigung benötige?

8

Ich habe einen Stream, der die gesamte Verarbeitung in peek() Methoden durchführt. Ich brauche kein Ergebnis vom Stream, aber ich brauche eine Terminaloperation, damit die Verarbeitung stattfinden kann. Natürlich kann ich den Stream mit count() (oder einer anderen Operation) beenden, aber das wäre irreführend, als ob ich ein Ergebnis aus der Stream-Beendigung benötige. Was ist die richtige Methode, um den Stream in einem solchen Fall zu beenden?

Hier ist der Code für die Referenz:

%Vor%     
gvlasov 17.02.2015, 14:47
quelle

3 Antworten

4

So habe ich den Code aus der Frage umgeschrieben:

%Vor%     
gvlasov 17.02.2015, 15:32
quelle
3

Wenn es nur die "Irreführung" ist, die dich ärgert, versuche dies:

%Vor%

Ich denke, das würde jede Zweideutigkeit beseitigen: Die Methode hat einen klaren Zweck und der Ruf ist auch klar. Bei Verwendung wie folgt,

%Vor%

Die Hauptmethode wird gedruckt

%Vor%

Dies erfordert, dass stream nicht geschlossen ist und nicht bearbeitet wurde, oder es wird IllegalStateException geworfen.

    
DennisW 17.02.2015 15:11
quelle
2

Sie könnten allMatch () als Terminaloperation verwenden, da diese nicht für alle Elemente ausgewertet werden muss.

    
Neil Masson 17.02.2015 15:11
quelle

Tags und Links