मैं आसानी से फ़िल्टर फ़िल्टर करने के लिए जावा 8 लैम्ब्डा के साथ खेल रहा था। लेकिन मुझे उसी विवरण के भीतर एक नई सूची के रूप में परिणाम प्राप्त करने के लिए एक संक्षिप्त तरीका नहीं मिला। यहाँ मेरा अब तक का सबसे संक्षिप्त दृष्टिकोण है:
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
नेट पर उदाहरणों ने मेरे प्रश्न का उत्तर नहीं दिया क्योंकि वे नई परिणाम सूची तैयार किए बिना रुक जाते हैं। अधिक संक्षिप्त तरीका होना चाहिए। मैं अपेक्षा की होगी, कि Stream
वर्ग तरीके के रूप में है toList()
, toSet()
...
क्या कोई रास्ता है कि चर targetLongList
को सीधे तीसरी पंक्ति द्वारा सौंपा जा सकता है?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongList
केCollection.removeIf(…)
लिए बाद की आवश्यकता नहीं है ।