"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा स्ट्रीम में ऑब्जेक्ट की सूची को कुशलतापूर्वक वैकल्पिक में कैसे बदलें?

जावा स्ट्रीम में ऑब्जेक्ट की सूची को कुशलतापूर्वक वैकल्पिक में कैसे बदलें?

2024-11-07 को प्रकाशित
ब्राउज़ करें:510

How to Efficiently Convert List of Objects to Optional in Java Streams?

जावा 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();
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729667949 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3