जावा 8 के वैकल्पिक और स्ट्रीम के साथ संक्षिप्त होना::फ्लैटमैप
जावा 8 स्ट्रीम के साथ काम करते समय, एक सूची को वैकल्पिक में बदलना और पहले अन्य मान को कुशलतापूर्वक निकालना एक चुनौती हो सकता है। जबकि फ़्लैटमैप को आम तौर पर एक रिटर्न स्ट्रीम की आवश्यकता होती है, वैकल्पिक के लिए स्ट्रीम() की अनुपस्थिति मामले को जटिल बनाती है। संक्षिप्त दृष्टिकोण:
वैकल्पिक परिणाम = चीज़ें.स्ट्रीम() .map(यह::समाधान) .mapMulti(वैकल्पिक::ifPresent) .findFirst();
Java 9 Solution
Optional result = things.stream()
.map(this::resolve)
.mapMulti(Optional::ifPresent)
.findFirst();
वैकल्पिक परिणाम = चीज़ें.स्ट्रीम() .map(यह::समाधान) .flatMap(वैकल्पिक::स्ट्रीम) .findFirst();
Java 8 Solution
Optional result = things.stream()
.map(this::resolve)
.flatMap(Optional::stream)
.findFirst();
वैकल्पिक परिणाम = चीज़ें.स्ट्रीम() .map(यह::समाधान) .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty()) .findFirst();
वैकल्पिक को स्ट्रीम में बदलने के लिए एक सहायक फ़ंक्शन का उपयोग करना:staticस्ट्रीम स्ट्रीमऑप्ट(वैकल्पिक ऑप्ट) { यदि (opt.isPresent()) रिटर्न स्ट्रीम.ऑफ(ऑप्ट.गेट()); अन्य वापसी स्ट्रीम.खाली(); } वैकल्पिक परिणाम = चीज़ें.स्ट्रीम() .flatMap(t -> स्ट्रीमऑप्ट(resolve(t))) .findFirst();
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3