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

जावा 9 में Optional.ifPresentOrElse() और Optional.or() मेथड में अंतर?

दोनों Optional.ifPresentOrElse() और Optional.or() मेथड जावा 9 संस्करण में इसकी कार्यक्षमता में सुधार के लिए पेश किए गए हैं। Optional.ifPresentOrElse() मेथड जांचता है कि क्या मान मौजूद है, मान के साथ एक्शन लागू करता है, अन्यथा खाली एक्शन लौटाता है जबकि Optional.or() मेथड जांचता है कि क्या मान मौजूद है, मान वाला ऑप्शनल लौटाता है, अन्यथा सप्लायर फंक्शन पर लागू ऑप्शनल लौटाता है। Optional.ifPresentOrElse() मेथड में दो पैरामीटर होते हैं, Consumer और Runnable जबकि Optional.or() मेथड में केवल एक पैरामीटर होता है, Supplier।

Optional.ifPresentOrElse() का सिंटैक्स:

public void ifPresentOrElse(Consumer action, Runnable emptyAction)

उदाहरण

import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;

public class IfPresentOrElseMethodTest {
    public static void main(String args[]) {
        optionalIsPresent();
        optionalIsEmpty();
    }
    private static void optionalIsPresent() {
        Optional optional = Optional.of("Test");
        AtomicInteger successCounter = new AtomicInteger();
        AtomicInteger emptyOptionalsCounter = new AtomicInteger();
        optional.ifPresentOrElse(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());
        System.out.println(successCounter.get());
        System.out.println(emptyOptionalsCounter.get());
    }
    private static void optionalIsEmpty() {
        Optional optional = Optional.empty();
        AtomicInteger successCounter = new AtomicInteger();
        AtomicInteger emptyOptionalsCounter = new AtomicInteger();
        optional.ifPresentOrElse(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());
        System.out.println(successCounter.get());
        System.out.println(emptyOptionalsCounter.get());
    }
}

आउटपुट

1 0 0 1

Optional.or() का सिंटैक्स:

public Optional or(Supplier> supplier)

उदाहरण

import java.util.Optional;

public class OptionalOrMethodTest {
    public static void main(String args[]) {
        optionalIsPresent();
        optionalIsEmpty();
    }
    private static void optionalIsPresent() {
        Optional optional1 = Optional.of("Test1");
        Optional optional2 = Optional.of("Test2");
        Optional optional3 = optional1.or(() -> optional2);
        System.out.println(optional3.get());
    }
    private static void optionalIsEmpty() {
        Optional optional1 = Optional.empty();
        Optional optional2 = Optional.of("Test2");
        Optional optional3 = optional1.or(() -> optional2);
        System.out.println(optional3.get());
    }
}

आउटपुट

Test1 Test2
  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. - जावा में wait() और sleep() मेथड में अंतर?

    sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान रनिंग थ्रेड को नॉन-रनेबल स्थिति में भेज सकता है जबकि wait() मेथड एक इंस्टेंस मेथड है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके बुलाते हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावी होता है। sleep() मेथड समय समाप्त होने या interrupt() मेथड बुलाए जा

  1. - Java में compareTo() और compare() मेथड्स में क्या अंतर है?

    Comparable इंटरफेस ऑब्जेक्ट्स की ऑर्डरिंग के लिए compareTo() मेथड प्रदान करता है। इस ऑर्डरिंग को क्लास की नेचुरल ऑर्डरिंग कहा जाता है और compareTo() मेथड को इसका नेचुरल कम्पैरिजन मेथड कहा जाता है। Comparator इंटरफेस सॉर्टिंग ऑपरेशन्स करने के लिए मेथड्स प्रदान करता है। Comparator इंटरफेस का उपयोग कर