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

Java 9 मेंOptional.ifPresentOrElse () औरOptional.or () विधियों के बीच अंतर?

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

Optional.ifPresentOrElse():

. का सिंटैक्स
सार्वजनिक शून्य ifPresentOrElse(Consumer action, Runnable emptyAction) 

उदाहरण

आयात करें वैकल्पिकIsEmpty (); } निजी स्थैतिक शून्य वैकल्पिकIsPresent() { वैकल्पिक<स्ट्रिंग> वैकल्पिक =Optional.of ("परीक्षण"); AtomicInteger SuccessCounter =नया AtomicInteger (); AtomicInteger खालीऑप्शनल्सकाउंटर =नया AtomicInteger (); वैकल्पिक।ifPresentOrElse (x -> SuccessCounter.incrementAndGet (), () -> emptyOptionalsCounter.incrementAndGet ()); System.out.println (successCounter.get ()); System.out.println (खालीOptionalsCounter.get ()); } निजी स्थैतिक शून्य वैकल्पिकIsEmpty() { वैकल्पिक वैकल्पिक =Optional.empty(); AtomicInteger SuccessCounter =नया AtomicInteger (); AtomicInteger खालीऑप्शनल्सकाउंटर =नया AtomicInteger (); वैकल्पिक।ifPresentOrElse (x -> SuccessCounter.incrementAndGet (), () -> emptyOptionalsCounter.incrementAndGet ()); System.out.println (successCounter.get ()); System.out.println(emptyOptionalsCounter.get()) }}

आउटपुट

1001 


Optional.or():

. का सिंटैक्स
सार्वजनिक वैकल्पिक या(आपूर्तिकर्ता> आपूर्तिकर्ता बढ़ाता है) 

उदाहरण

 आयात java.util.Optional; सार्वजनिक वर्ग वैकल्पिकOrMethodTest {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {वैकल्पिकIsPresent (); वैकल्पिकIsEmpty (); } निजी स्थैतिक शून्य वैकल्पिकIsPresent() { वैकल्पिक<स्ट्रिंग> वैकल्पिक1 =Optional.of ("टेस्ट 1"); वैकल्पिक<स्ट्रिंग> वैकल्पिक2 =Optional.of ("टेस्ट 2"); वैकल्पिक<स्ट्रिंग > वैकल्पिक3 =वैकल्पिक1.या (() -> वैकल्पिक 2); System.out.println (Optional3.get ()); } निजी स्थैतिक शून्य वैकल्पिकIsEmpty() { वैकल्पिक<स्ट्रिंग> वैकल्पिक1 =Optional.खाली (); वैकल्पिक<स्ट्रिंग> वैकल्पिक2 =Optional.of ("टेस्ट 2"); वैकल्पिक<स्ट्रिंग> वैकल्पिक3 =वैकल्पिक1.या (() -> वैकल्पिक 2); System.out.println (Optional3.get ()); }}

आउटपुट

Test1Test2 

  1. जावा में संग्रह और संग्रह के बीच अंतर?

    संग्रह एक इंटरफ़ेस है जबकि संग्रह एक उपयोगिता . है जावा में कक्षा। सेट, सूची, और कतार संग्रह . के कुछ उप-इंटरफ़ेस हैं इंटरफ़ेस, एक मानचित्र इंटरफ़ेस संग्रह . का भी हिस्सा है फ्रेमवर्क, लेकिन यह इनहेरिट नहीं करता संग्रह इंटरफेस। संग्रह . के महत्वपूर्ण तरीके इंटरफ़ेस हैं जोड़ें (), हटाएं (),

  1. जावा में प्रतीक्षा () और नींद () विधि के बीच अंतर?

    नींद () विधि एक स्थिर . है थ्रेड . की विधि वर्ग और यह वर्तमान चल रहे धागे को नॉन-रननेबल स्थिति में भेज सकता है जबकि प्रतीक्षा करें () विधि एक उदाहरण विधि है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके कॉल कर रहे हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावित होता है। नींद () समय समाप्त होने के बाद मेथड वेक

  1. जावा में तुलना () और तुलना () विधियों के बीच अंतर क्या हैं?

    तुलनीय इंटरफ़ेस एक तुलना करने के लिए () . प्रदान करता है वस्तुओं के क्रम के लिए विधि। इस आदेश को वर्ग का . कहा जाता है प्राकृतिक क्रम और तुलना करें () विधि को इसकी प्राकृतिक तुलना विधि . कहा जाता है . तुलनित्र इंटरफ़ेस सॉर्टिंग ऑपरेशन करने के तरीके प्रदान करता है . तुलनित्र . का उपयोग करके इंटर