हैशमैप में Java

⚡ स्मार्ट सारांश

हैशमैप में Java यह डेटा को अद्वितीय कुंजी-मान युग्मों के रूप में संग्रहीत करता है जिन्हें कुंजी का उपयोग करके शीघ्रता से प्राप्त किया जा सकता है। यह प्रिमिटिव के बजाय ऑब्जेक्ट संदर्भों को रखता है, इसलिए रैपर क्लास का उपयोग किया जाता है, और इसमें पुट, गेट, रिमूव और कंटेन्सकी जैसे मेथड उपलब्ध हैं।

  • HashMap की परिभाषा: यह कुंजी के माध्यम से त्वरित पुनर्प्राप्ति के लिए मानों से मैप की गई अद्वितीय कुंजियों को संग्रहीत करता है।
  • 📦 ऑब्जेक्ट संदर्भ: इसमें केवल ऑब्जेक्ट ही रखे जा सकते हैं, इसलिए प्रिमिटिव के बजाय इंटीजर जैसी रैपर क्लास का उपयोग करें।
  • 🔧 मुख्य विधियाँ: put() एक जोड़ी को स्टोर करता है, get() एक मान को पुनर्प्राप्त करता है, remove() कुंजी द्वारा हटाता है।
  • 🔍 खोज: containsKey(), keySet(), values(), और isEmpty() मैप की सामग्री की जांच करते हैं।
  • 🧪 उदाहरण: नमूना प्रोग्राम एक मानचित्र बनाते हैं, उसे प्रिंट करते हैं और कुंजी द्वारा एक प्रविष्टि हटाते हैं।

हैशमैप में Java

हैशमैप क्या है? Java?

एक हैशमैप मूल रूप से निर्दिष्ट करता है अद्वितीय कुंजी संगत को मानों जिसे किसी भी समय पुनः प्राप्त किया जा सकता है।

हैशमैप में Java

की सुविधाएं Java हैशमैप

ए) मानों मानचित्र बनाकर उसमें संग्रहित किया जा सकता है मौलिक मूल्य जोड़ी। कुंजी का उपयोग करके मान को सही विधि में पास करके पुनर्प्राप्त किया जा सकता है।

ख) यदि कोई तत्व नहीं मानचित्र में मौजूद है, तो यह एक 'कोई 'ऐसेएलिमेंटएक्सेप्शन' नहीं.

c) हैशमैप केवल संग्रहीत करता है ऑब्जेक्ट संदर्भ. इसीलिए, इसका उपयोग करना असंभव है आदिम डेटा प्रकार जैसे double या int. रैपर क्लास का उपयोग करें (जैसे Integer या Double) बजाय।

की सुविधाएं Java हैशमैप

हैशमैप्स का उपयोग करना Java कार्यक्रम:

हैश मैप घोषित करने के दो तरीके निम्नलिखित हैं:

HashMap<String, Object> map = new HashMap<String, Object>();
HashMap x  = new HashMap();

महत्वपूर्ण हैशमैप विधियाँ

  • get(ऑब्जेक्ट कुंजी) - यह इसमें निर्दिष्ट कुंजी से संबद्ध मान लौटाएगा Java हैशमैप.
  • put(ऑब्जेक्ट कुंजी, स्ट्रिंग मान) - यह विधि निर्दिष्ट मान को संग्रहीत करती है और इसे इस मानचित्र में निर्दिष्ट कुंजी के साथ संबद्ध करती है।

Java हैशमैप उदाहरण

जावा हैश मैप का एक नमूना कार्यान्वयन निम्नलिखित है:

import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<String, String> objMap = new HashMap<String, String>();
    objMap.put("Name", "Suzuki");
    objMap.put("Power", "220");
    objMap.put("Type", "2-wheeler");
    objMap.put("Price", "85000");
    System.out.println("Elements of the Map:");
    System.out.println(objMap);
  }
}

आउटपुट:

Elements of the Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}

उदाहरण: कुंजी के आधार पर HashMap से मान निकालें

import java.util.*;
public class HashMapExample {
   public static void main(String args[]) {
   // create and populate hash map
   HashMap<Integer, String> map = new HashMap<Integer, String>();
   map.put(1,"Java");
   map.put(2, "Python");
   map.put(3, "PHP");
   map.put(4, "SQL");
   map.put(5, "C++");
   System.out.println("Tutorial in Guru99: "+ map);
   // Remove value of key 5
   map.remove(5);
   System.out.println("Tutorial in Guru99 After Remove: "+ map);
   }
}

आउटपुट:

Tutorial in Guru99: {1=Java, 2=Python, 3=PHP, 4=SQL, 5=C++}
Tutorial in Guru99 After Remove: {1=Java, 2=Python, 3=PHP, 4=SQL}

आइये हैश मैप को बेहतर तरीके से जानने के लिए उससे कुछ प्रश्न पूछें

प्रश्न: तो श्रीमान हैश मैप, मैं कैसे पता लगा सकता हूं कि कोई विशेष कुंजी आपको सौंपी गई है?

उत्तर: बढ़िया, आप मेरे साथ containsKey(Object KEY) विधि का उपयोग कर सकते हैं, यदि मेरे पास दी गई कुंजी के लिए कोई मान है तो यह बूलियन मान लौटाएगा।

प्रश्न: मैं मानचित्र पर मौजूद सभी उपलब्ध कुंजियों को कैसे ढूंढ सकता हूं?

उत्तर: मेरे पास एक विधि है जिसे कहा जाता है चाबीगुछा() जो मैप पर सभी कुंजियाँ लौटाएगा। उपरोक्त उदाहरण में, यदि आप एक पंक्ति इस प्रकार लिखते हैं –
सिस्टम.आउट.प्रिंटलाइन(objMap.keySet());

यह एक वापसी होगी उत्पादन जैसा-
[नाम, प्रकार, शक्ति, मूल्य]

इसी तरह, यदि आपको केवल सभी मानों की आवश्यकता है, तो मेरे पास एक विधि है मानों()।
सिस्टम.आउट.प्रिंटलाइन(objMap.values());

यह एक वापसी होगी उत्पादन जैसा-
[सुजुकी, 2-पहिया, 220, 85000]

प्रश्न: मान लीजिए, मुझे मानचित्र से केवल एक विशेष कुंजी हटानी है, तो क्या मुझे संपूर्ण मानचित्र हटाना होगा?

उत्तर: नहीं दोस्त!! मेरे पास एक तरीका है हटाना(ऑब्जेक्ट KEY) जो केवल उस विशेष कुंजी-मान युग्म को हटाएगा।

प्रश्न: हम कैसे जांच सकते हैं कि क्या वास्तव में आपके पास कुछ कुंजी-मूल्य जोड़े हैं?

उत्तर: बस जाँच लें कि मैं खाली हूँ या नहीं!! संक्षेप में, उपयोग करें खाली है() विधि मेरे खिलाफ..

अक्सर पूछे जाने वाले प्रश्न

HashMap नॉन-सिंक्रोनाइज़्ड है और एक नल कुंजी और कई नल मानों की अनुमति देता है, जिससे यह सिंगल-थ्रेडेड उपयोग के लिए तेज़ होता है। Hashtable सिंक्रोनाइज़्ड है और नल कुंजी या मानों की अनुमति नहीं देता है, जिससे यह थ्रेड-सेफ तो है लेकिन धीमा है।

जी हां। HashMap में केवल एक null key और कितनी भी null values ​​हो सकती हैं। दूसरी null key जोड़ने से मौजूदा null key से जुड़ी वैल्यू ओवरराइट हो जाती है।

नहीं। HashMap अपनी कुंजियों के किसी भी क्रम की गारंटी नहीं देता है। यदि आपको प्रविष्टि क्रम की आवश्यकता है तो LinkedHashMap का उपयोग करें, और यदि आपको कुंजी के अनुसार क्रमबद्ध क्रम की आवश्यकता है तो TreeMap का उपयोग करें।

एआई लुकअप, ऑर्डरिंग और कॉन्करेंसी आवश्यकताओं जैसे एक्सेस पैटर्न का विश्लेषण कर सकता है, फिर हैशमैप, ट्रीमैप, लिंक्डहैशमैप या कॉन्करेंटहैशमैप की सिफारिश कर सकता है।ping डेवलपर अपने उपयोग के मामले के लिए सबसे कुशल संग्रह का चयन करते हैं।

जी हां। एआई-सहायता प्राप्त विश्लेषण, सिंक्रोनाइज़ेशन के बिना कई थ्रेड्स द्वारा एक्सेस किए जा रहे साझा हैशमैप को चिह्नित कर सकता है और रेस कंडीशन और डेटा भ्रष्टाचार को रोकने के लिए कॉन्करेंट हैशमैप या बाहरी लॉकिंग की सिफारिश कर सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: