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

जावा में हैश मैप का आंतरिक कार्य

जावा में किसी ऑब्जेक्ट का हैश कोड प्राप्त करने के लिए 'हैशकोड' फ़ंक्शन का उपयोग किया जाता है। यह सुपर क्लास ऑब्जेक्ट का ऑब्जेक्ट है। यह ऑब्जेक्ट रेफरेंस की मेमोरी को पूर्णांक के रूप में लौटाता है। यह एक नेटिव फंक्शन है, जिसका मतलब है कि जावा में किसी भी डायरेक्ट मेथड का इस्तेमाल ऑब्जेक्ट के रेफरेंस को लाने के लिए नहीं किया जा सकता है।

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

public native hashCode()

चूंकि हमने 'बाल्टी' का उल्लेख किया है, इसलिए इसका अर्थ समझना महत्वपूर्ण है। यह एक तत्व है जिसका उपयोग नोड्स को स्टोर करने के लिए किया जाता है। एक बाल्टी में दो से अधिक नोड हो सकते हैं। लिंक्ड सूची डेटा संरचना का उपयोग करके नोड्स को जोड़ा जा सकता है। हैशमैप की क्षमता की गणना बकेट और लोड फैक्टर का उपयोग करके की जा सकती है।

Capacity = number of buckets * load factor

फ़ंक्शन 'बराबर' का उपयोग दो वस्तुओं के बीच समानता की जाँच के लिए किया जाता है। यह सुपर क्लास ऑब्जेक्ट द्वारा भी दिया जाता है। अनुकूलित कार्यान्वयन प्रदान करके इस फ़ंक्शन को अनुकूलित वर्ग में ओवरराइड किया जा सकता है। प्रश्नों में दो ऑब्जेक्ट बराबर हैं या नहीं, इस पर निर्भर करते हुए यह फ़ंक्शन सही या गलत लौटाता है।

एक अनुक्रमणिका मान उत्पन्न होता है ताकि सरणी का आकार बड़ा न हो, जिससे outOfMemoryException से बचा जा सके। सरणी का सूचकांक ज्ञात करने का सूत्र है -

Index = hashCode(key) & (n-1) – Here n refers to number of buckets.

आइए एक उदाहरण देखें -

उदाहरण

import java.util.HashMap;
class hash_map{
   String key;
   hash_map(String key){
      this.key = key;
   }
   @Override
   public int hashCode(){
      int hash = (int)key.charAt(0);
      System.out.println("The hash code for key : " + key + " = " + hash);
      return hash;
   }
   @Override
   public boolean equals(Object obj){
      return key.equals(((hash_map)obj).key);
   }
}
public class Demo{
   public static void main(String[] args){
      HashMap my_map = new HashMap();
      my_map.put(new hash_map("This"), 15);
      my_map.put(new hash_map("is"), 35);
      my_map.put(new hash_map("a"), 26);
      my_map.put(new hash_map("sample"), 45);
      System.out.println("The value for key 'this' is : " + my_map.get(new hash_map("This")));
      System.out.println("The value for key 'is' is: " + my_map.get(new hash_map("is")));
      System.out.println("The value for key 'a' is: " + my_map.get(new hash_map("a")));
      System.out.println("The value for key 'sample' is: " + my_map.get(new hash_map("sample")));
   }
}

आउटपुट

The hash code for key : This = 84
The hash code for key : is = 105
The hash code for key : a = 97
The hash code for key : sample = 115
The hash code for key : This = 84
The value for key 'this' is : 15
The hash code for key : is = 105
The value for key 'is' is: 35
The hash code for key : a = 97
The value for key 'a' is: 26
The hash code for key : sample = 115
The value for key 'sample' is: 45

'हैश_मैप' नामक एक वर्ग एक स्ट्रिंग और एक कंस्ट्रक्टर को परिभाषित करता है। यह 'हैशकोड' नामक एक अन्य फ़ंक्शन द्वारा ओवरराइड किया गया है। यहां, हैशमैप के प्रमुख मूल्यों को पूर्णांक में परिवर्तित किया जाता है और हैश कोड मुद्रित किया जाता है। इसके बाद, 'बराबर' फ़ंक्शन ओवरराइड हो जाता है और जांचता है कि कुंजी हैशमैप की कुंजी के बराबर है या नहीं। डेमो क्लास एक मुख्य फ़ंक्शन को परिभाषित करता है जहां हैश मैप का एक नया उदाहरण बनाया जाता है। तत्वों को इस संरचना में 'पुट' फ़ंक्शन का उपयोग करके जोड़ा जाता है और कंसोल पर मुद्रित किया जाता है।


  1. पायथन का आंतरिक कार्य

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

  1. पायथन में सूची का आंतरिक कार्य

    इस ट्यूटोरियल में, हम पायथन 3.x में सूची के आंतरिक कामकाज के बारे में जानेंगे। या जल्दी। जब हम प्रत्येक चरण में एक पायथन स्टेटमेंट लिखते हैं, तो हम ऑब्जेक्ट और फ्रेम फॉर्मेशन को भी देखेंगे। सूची को प्रारंभ करना:इसका अर्थ है कि हम कुछ तत्वों के साथ एक सूची बना रहे हैं। >>> lis=[1,2,3,4]

  1. फिक्स:विंडोज 10 में विंडोज की काम नहीं कर रही है

    Windows 10 में Windows Key काम नहीं कर रही है? विंडोज की, जिसे विनकी के नाम से भी जाना जाता है, स्टार्ट मेन्यू की स्थापना के समय से ही आसपास है। विंडोज़ आइकन वाली यह भौतिक कुंजी एफएन कुंजी और वहां मौजूद प्रत्येक कीबोर्ड पर ऑल्ट कुंजी के बीच पाई जा सकती है। विंडोज की का एक साधारण प्रेस स्टार्ट मेन्य