"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट का उपयोग कर हैश मैप

जावास्क्रिप्ट का उपयोग कर हैश मैप

2024-11-02 को प्रकाशित
ब्राउज़ करें:579

Hash Map using Javascript

परिचय

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

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

जावास्क्रिप्ट में एक सरल हैश मैप लागू करना

let hashMap = {};
hashMap['key1'] = 'value1';
hashMap['key2'] = 'value2';
console.log(hashMap['key1']); // Outputs: value1

टकराव से निपटना

  • टकराव से निपटना हैश मैप को लागू करने का एक महत्वपूर्ण पहलू है। टकराव तब होता है जब दो अलग-अलग कुंजियाँ समान हैश उत्पन्न करती हैं। टकरावों को संभालने के लिए कई रणनीतियाँ हैं, लेकिन दो सबसे आम रणनीतियाँ हैं अलग चेनिंग और रैखिक जांच।

अलग चेनिंग: अलग चेनिंग में, हैश टेबल के एरे में प्रत्येक स्लॉट में एक लिंक्ड सूची (या अन्य डेटा संरचना जो कई आइटम रख सकती है) होती है। जब कोई टकराव होता है, तो नई कुंजी-मूल्य जोड़ी को संबंधित सूचकांक पर लिंक की गई सूची के अंत में जोड़ा जाता है।

यहां जावास्क्रिप्ट में अलग श्रृंखला का उपयोग करके हैश मैप का एक सरल कार्यान्वयन है:

class HashMap {
  constructor() {
    this.table = new Array(100).fill(null).map(() => []);
  }

  put(key, value) {
    const index = this.hash(key);
    const chain = this.table[index];
    const existingPair = chain.find(([existingKey]) => existingKey === key);

    if (existingPair) {
      existingPair[1] = value;
    } else {
      chain.push([key, value]);
    }
  }

  get(key) {
    const index = this.hash(key);
    const chain = this.table[index];
    const pair = chain.find(([existingKey]) => existingKey === key);

    if (pair) {
      return pair[1];
    }

    return null;
  }

  hash(key) {
    let hash = 0;
    for (let i = 0; i 



रैखिक जांच: रैखिक जांच में, जब कोई टकराव होता है, तो हैश मैप सरणी में अगले स्लॉट की जांच करता है (और यदि वह भी भरा हुआ है, तो अगले स्लॉट तक जारी रहता है, और इसी तरह) जब तक वह नहीं मिल जाता एक खाली स्लॉट जहां यह नई कुंजी-मूल्य जोड़ी को संग्रहीत कर सकता है।

यहां जावास्क्रिप्ट में रैखिक जांच का उपयोग करके हैश मैप का एक सरल कार्यान्वयन है:

class HashMap {
  constructor() {
    this.table = new Array(100).fill(null);
  }

  put(key, value) {
    let index = this.hash(key);
    while (this.table[index] !== null) {
      index = (index   1) % this.table.length;
    }
    this.table[index] = [key, value];
  }

  get(key) {
    let index = this.hash(key);
    while (this.table[index] !== null) {
      if (this.table[index][0] === key) {
        return this.table[index][1];
      }
      index = (index   1) % this.table.length;
    }
    return null;
  }

  hash(key) {
    let hash = 0;
    for (let i = 0; i 



दोनों उदाहरणों में, हैश विधि एक सरल हैश फ़ंक्शन है जो कुंजी को पूर्णांक में परिवर्तित करती है जिसे सरणी में इंडेक्स के रूप में उपयोग किया जाता है। वास्तविक दुनिया के परिदृश्य में, टकराव की संभावना को कम करने के लिए आप संभवतः अधिक जटिल हैश फ़ंक्शन का उपयोग करेंगे।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ashutushsarangi/hash-map-using-javascript-5d03?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3