Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java 9 में Collectors.flatMapping() मेथड का महत्व क्या है?

Collectors.flatMapping()

Java 9 में, Collectors क्लास में एक नया मेथड जोड़ा गया: flatMapping(). यह Collectors.mapping() मेथड के समान है जिसमें flatMapping() मेथड हमें नेस्टेड संग्रहों को संभालने की अनुमति देता है। Collectors.flatMapping() मेथड इनपुट एलिमेंट्स पर लागू करने के लिए एक फंक्शन और फंक्शन के माध्यम से पास किए गए एलिमेंट्स को संचित करने के लिए एक कलेक्टर लेता है। Collectors.mapping() मेथड के विपरीत, Collectors.flatMapping() मेथड एलिमेंट्स की एक स्ट्रीम से निपटता है जो हमें अनावश्यक मध्यवर्ती संग्रहों से छुटकारा पाने की अनुमति देता है।

सिंटैक्स

public static <T,U,A,R> Collector<T,?,R> flatMapping(
    Function<? super T,? extends Stream<? extends U>> mapper,
    Collector<? super U,A,R> downstream)

उदाहरण: नेस्टेड लिस्ट्स को फ़िल्टर और फ्लैट करना

import java.util.stream.Collectors;
import java.util.Stream;
import java.util.Collection;
import java.util.List;
import java.util.Map;

public class FlatMappingMethodTest {
    public static void main(String args[]) {
        Map<Integer, List<Integer>> map = Stream.of(List.of(1, 2, 3, 4, 5, 6), List.of(7, 8, 9, 10))
            .collect(Collectors.groupingBy(
                Collection::size,
                Collectors.flatMapping(
                    l -> l.stream().filter(i -> i % 2 == 0),
                    Collectors.toList()
                )
            ));
        System.out.println(map);
    }
}

आउटपुट

{4=[8, 10], 6=[2, 4, 6]}

flatMapping() नेस्टेड स्ट्रीम्स को कुशलतापूर्वक फ्लैट करता है और डाउनस्ट्रीम कलेक्टर में संचित करता है।

  1. - Java में Recursion का उपयोग कैसे करें

    Java Methods मेथड्स, जिन्हें कभी-कभी फंक्शन्स कहा जाता है, कोड के ब्लॉक होते हैं जो एक विशिष्ट कार्य करते हैं। उदाहरण के लिए, एक मेथड का उपयोग मानों के array के योग की गणना करने या array की सामग्री को कंसोल पर प्रिंट करने के लिए किया जा सकता है। यहाँ Java में मेथड के लिए सिंटैक्स है: modifier static

  1. - जावास्क्रिप्ट में _without() मेथड का महत्व क्या है?

    _without() यह मेथड जावास्क्रिप्ट के underscore.js लाइब्रेरी में है। यह दो पैरामीटर्स लेता है और दूसरी सरणी में मौजूद एलिमेंट्स को पहली सरणी से हटा देता है। यह परवाह नहीं करता कि मान true हैं या false, यह प्रत्येक मान को एक-एक करके जांचता है और कार्य को आगे बढ़ाता है। सुनिश्चित करें कि यह केस-सेंसिटि

  1. Java 9 में destroyForcibly() मेथड का महत्व Java 9 में destroyForcibly() मेथड का महत्व

    Java 9 ने Process क्लास में destroyForcibly() मेथड पेश किया जो प्रक्रियाओं को बलपूर्वक समाप्त करने का एक विश्वसनीय तरीका प्रदान करता है जब सामान्य destroy() (विनम्र समाप्ति) विफल हो जाता है या बहुत धीमा होता है। destroy() बनाम destroyForcibly() पहलूdestroy()destroyForcibly() सिग्नलSIGTERM