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

जावा में HashTable और ConcurrentHashMap में अंतर

ConcurrentHashMap एक क्लास है जिसे jdk1.5 में पेश किया गया था। ConcurrentHashMap मैप में जोड़ते या अपडेट करते समय केवल बकेट लेवल पर लॉक लगाता है जिसे फ्रैगमेंट कहा जाता है। इसलिए, ConcurrentHashMap मैप पर समवर्ती पढ़ने और लिखने के ऑपरेशन की अनुमति देता है।

HashTable एक थ्रेड-सेफ लिगेसी क्लास है जिसे Jdk1.1 में पेश किया गया था। यह Map इंटरफेस का बेस कार्यान्वयन है। यह नल कीज़ और वैल्यूज़ की अनुमति नहीं देता। यह सिंक्रनाइज़्ड प्रकृति का है इसलिए दो अलग-अलग थ्रेड्स एक साथ एक्सेस नहीं कर सकते। Hashtable कोई क्रम बनाए नहीं रखता।

क्र. सं. मुख्य बिंदु HashTable ConcurrentHashMap
1 बेसिक HashTable Jdk1.1 में पेश किया गया एक थ्रेड-सेफ लिगेसी क्लास है ConcurrentHashMap jdk1.5 में पेश की गई एक क्लास है
2 लॉकिंग यह पूरे कलेक्शन पर लॉक लगाता है ConcurrentHashMap मैप में जोड़ते या अपडेट करते समय केवल बकेट लेवल पर लॉक लगाता है जिसे फ्रैगमेंट कहा जाता है
3 प्रदर्शन यह ConcurrentHashMap से धीमा है यह HashTable से बेहतर है
4 नल यह नल की और वैल्यू की अनुमति नहीं देता यह नल की और वैल्यू की अनुमति देता है

Hashtable का उदाहरण

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

public class HashtableExample {
    public static void main(String[] args) {
        // Hashtable बनाएं
        Hashtable map = new Hashtable();
        map.put("HCL", "100");
        map.put("DELL", "200");
        map.put("IBM", "300");
        // मैप प्रिंट करें
        for (Map.Entry m : map.entrySet()) {
            System.out.println(m.getKey() + " " + m.getValue());
        }
    }
}

ConcurrentHashMap का उदाहरण

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ConcurrentHashMapExample {
    public static void main(String[] args) {
        // ConcurrentHashMap
        Map myMap = new ConcurrentHashMap();
        myMap.put("HCL", "1");
        myMap.put("DELL", "1");
        // मैप प्रिंट करें
        for (Map.Entry m : map.entrySet()) {
            System.out.println(m.getKey() + " " + m.getValue());
        }
    }
}
  1. - जावा में Iterator और Enumeration के बीच अंतर

    Iterator और Enumeration दोनों कलेक्शन से एलिमेंट्स को ट्रैवर्स और एक्सेस करने के लिए कर्सर हैं। वे दोनों कलेक्शन फ्रेमवर्क से संबंधित हैं। Enumeration JDK 1.0 में जोड़ा गया था और Iterator JDK 1.2 वर्जन में कलेक्शन फ्रेमवर्क में जोड़ा गया। Enumeration कलेक्शन में स्ट्रक्चरल चेंज नहीं कर सकता क्योंकि

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या

  1. - tkinter और Tkinter के बीच अंतर

    लोकल कंप्यूटर में tkinter इंस्टॉल करने के लिए, हम अपने OS आर्किटेक्चर के आधार पर कई कमांड्स का उपयोग करते हैं। हमारी विंडोज़-बेस्ड मशीन में tkinter लाइब्रेरी इम्पोर्ट करने के दो तरीके हैं जो पायथन वर्जन पर आधारित हैं। पहले, पायथन के लोअर वर्जन्स के लिए, हम आमतौर पर निम्नलिखित कमांड का उपयोग करके tk