2016-10-26 3 views
1

Je veux collecter les n premiers éléments d'un flux, sans itération à travers le tout. Y a-t-il une méthode standard qui fait cela? AlafindFirst() pour les flux Java, mais pour n éléments?

MyList.stream() 
    .filter(x -> predicate(x)) 
    .findFirstN(100) 

retournerait une collection de jusqu'à 100 éléments du flux? Mon alternative est d'évaluer le flux entier et ensuite d'échantillonner à partir du résultat, mais cela ne profite pas de l'évaluation paresseuse inhérente aux flux.

Répondre