Java Streams TakeUntil 100 éléments filtrés / collectés

Phil:

Je veux utiliser les flux comme:

List<String> result = myArr
    .stream()
    .filter(line -> !"foo".equals(line))
    .collect(Collectors.toList());

mais arrêter le filtrage dès que je maximum de 100 éléments prêts à être collectés. Comment puis - je parvenir sans filtrer tous et appeler subList(100, result.size())?

ernest_k:

Vous pouvez utiliser limit après filter :

List<String> result = myArr
    .stream()
    .filter(line -> !"foo".equals(line))
    .limit(100) 
    .collect(Collectors.toList());

Cela arrêtera le flux après 100 articles ont été trouvés après affinement de la recherche ( limitest une opération de flux court-circuit).

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=178565&siteId=1
conseillé
Classement