जावा हैशपप कम्प्यूट IfAbsent ()

Java HashMap computeIfAbsent () विधि एक नए मान की गणना करती है और यह निर्दिष्ट कुंजी के साथ जोड़ देती है यदि कुंजी हैशमैप में किसी भी मान से संबद्ध नहीं है।

computeIfAbsent()विधि का सिंटैक्स है:

 hashmap.computeIfAbsent(K key, Function remappingFunction)

यहाँ, हैशमप HashMapवर्ग की एक वस्तु है ।

computeIfAbsent () पैरामीटर

computeIfAbsent()विधि 2 पैरामीटर लेता है:

  • कुंजी - कुंजी जिसके साथ गणना मूल्य जुड़ा होना है
  • रीमैपिंगफ़ंक्शन - फ़ंक्शन जो निर्दिष्ट कुंजी के लिए नए मान की गणना करता है

नोट : रीमैपिंग फ़ंक्शन दो तर्क नहीं ले सकता।

computeIfAbsent () रिटर्न मान

  • निर्दिष्ट कुंजी से जुड़ा नया या पुराना मान लौटाता है
  • nullयदि कोई कुंजी के साथ जुड़े मूल्य नहीं देता है

नोट : यदि रीमैपिंगफंक्शन का परिणाम है null, तो निर्दिष्ट कुंजी के लिए मैपिंग हटा दी जाती है।

उदाहरण 1: जावा हैशपप कम्प्यूट IfAbsent ()

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // compute the value of Shirt int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280); System.out.println("Price of Shirt: " + shirtPrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

आउटपुट

 HashMap: (पंत = 150, बैग = 300, जूते = 200) शर्ट की कीमत: 280 अद्यतन हाशप: (पंत = 150, शर्ट = 280, बैग = 300, जूते = 200)

उपरोक्त उदाहरण में, हमने एक हैशमैप नाम की कीमतें बनाई हैं। अभिव्यक्ति पर ध्यान दें,

 prices.computeIfAbsent("Shirt", key -> 280)

यहाँ,

  • कुंजी -> 280 एक लंबोदर अभिव्यक्ति है। यह मान 280 देता है। लंबोदर एक्सप्रेशन के बारे में अधिक जानने के लिए, जावा लैम्ब्डा एक्सप्रेशंस पर जाएँ।
  • price.computeIfAbsent () शर्ट के लिए मैपिंग के लिए लैम्ब्डा एक्सप्रेशन द्वारा लौटाए गए नए मूल्य को जोड़ता है । यह केवल इसलिए संभव है क्योंकि हैशमैप में शर्ट को पहले से किसी भी मूल्य पर मैप नहीं किया गया है।

उदाहरण 2: computeIfAbsent () यदि कुंजी पहले से मौजूद है

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create an HashMap HashMap prices = new HashMap(); // insert entries to the HashMap prices.put("Shoes", 180); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // mapping for Shoes is already present // new value for Shoes is not computed int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280); System.out.println("Price of Shoes: " + shoePrice); // print updated HashMap System.out.println("Updated HashMap: " + prices); ) )

आउटपुट

 HashMap: (पंत = 150, बैग = 300, जूते = 180) जूते की कीमत: 180 अद्यतन हाशप: (पंत = 150, बैग = 300, जूते = 180)

उपरोक्त उदाहरण में, शूज़ के लिए मैपिंग पहले से ही हैशमैप में मौजूद है। इसलिए, computeIfAbsent()विधि जूते के लिए नए मूल्य की गणना नहीं करती है।

अनुशंसित पाठ

  • HashMap कंप्यूट () - निर्दिष्ट कुंजी के लिए मान की गणना करता है
  • HashMap computeIfPresent () - मान की गणना करता है यदि निर्दिष्ट कुंजी पहले से किसी मान पर मैप की गई है
  • Java HashMap मर्ज () - के समान कार्य करता है compute()

दिलचस्प लेख...