मेरे पास एक संग्रह है जिसमें कुछ मानों के साथ सेट प्रकार का फ़ील्ड है। मुझे इन सभी मूल्यों को एकत्रित करने के लिए एक नया सेट बनाना होगा।सेट फ़ील्ड के सभी मानों को एकत्र करें
मुझे आश्चर्य है कि यह लैम्ब्डा अभिव्यक्तियों का उपयोग कर संभव है या नहीं।
Set<String> teacherId = batches.stream()
.filter(b -> !CollectionUtils.isEmpty(b.getTeacherIds()))
.map(b -> b.getTeacherIds())
.collect(Collectors.toSet());
समस्या, पोस्ट नक्शा ऑपरेशन है यह तार के सेट का संग्रह होता:
नीचे कोड लाइन है। तो ऑपरेशन संग्रह Set<Set<String>>
देता है लेकिन मैं सभी मानों को एक सेट में एकत्रित करना चाहता हूं।
क्या होगा यदि b.getTeacherIds एक शून्य है? –
@ बिस्किटकोडर तर्क, अच्छा बिंदु - धाराएं नल को अच्छी तरह से संभालती नहीं हैं। मैं इसे संपादित करूंगा। – Mureinik
@Mureinik 'फ़िल्टर (ऑब्जेक्ट्स :: nonNull) 'पर्याप्त नहीं होगा। आप 'stream' को 'flatMap' के अंदर एक शून्य संदर्भ पर कॉल करेंगे ... – Eugene