मैं धाराओं का उपयोग करना चाहता हूं जैसे:

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

लेकिन जैसे ही मेरे पास अधिकतम १०० तत्व एकत्र करने के लिए तैयार हों, फ़िल्टरिंग बंद कर दें। मैं सभी को फ़िल्टर किए बिना और subList(100, result.size()) को कॉल किए बिना इसे कैसे प्राप्त कर सकता हूं?

5
Phil 9 अक्टूबर 2018, 16:39

1 उत्तर

सबसे बढ़िया उत्तर

आप limit बाद filter का उपयोग कर सकते हैं:

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

फ़िल्टर करने के बाद 100 आइटम मिलने के बाद यह स्ट्रीम को रोक देगा (limit एक शॉर्ट-सर्किटिंग स्ट्रीम ऑपरेशन है)।

9
Andrew Tobilko 9 अक्टूबर 2018, 13:49