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

HashMap के एलिमेंट्स के माध्यम से इटरेट करने के लिए Java प्रोग्राम


इस लेख में, हम समझेंगे कि HashMap के एलिमेंट्स के माध्यम से कैसे इटरेट करें। Java HashMap Java के Map इंटरफेस की हैश टेबल आधारित कार्यान्वयन है। यह कुंजी-मान जोड़े का संग्रह है।

नीचे इसका प्रदर्शन है:

मान लीजिए हमारा इनपुट है:

प्रोग्राम चलाएं

वांछित आउटपुट होगा:

HashMap के एलिमेंट्स हैं:
1 : Java
2 : Python
3 : Scala
4 : Javascript

एल्गोरिदम

चरण 1 - शुरू
चरण 2 - एक HashMap घोषित करें जिसका नाम input_map हो
चरण 3 - मान परिभाषित करें
चरण 4 - for-लूप का उपयोग करके इटरेट करें, कुंजी और इंडेक्स से जुड़े मान प्राप्त करने के लिए getKey() और getValue() फंक्शन्स का उपयोग करें
चरण 5 - परिणाम प्रदर्शित करें
चरण 6 - रुकें

उदाहरण 1

यहाँ, हम सभी ऑपरेशन्स को 'main' फंक्शन के तहत बांधते हैं।

import java.util.HashMap;
import java.util.Map;

public class Demo {
    public static void main(String[] args) {
        System.out.println("आवश्यक पैकेज आयात किए गए हैं");
        Map input_map = new HashMap();
        input_map.put("1", "Java");
        input_map.put("2", "Python");
        input_map.put("3", "Scala");
        input_map.put("4", "Javascript");
        System.out.println("एक HashMap घोषित किया गया\n");
        
        System.out.println("HashMap के एलिमेंट्स हैं: ");
        for (Map.Entry set : input_map.entrySet()) {
            System.out.println(set.getKey() + " : " + set.getValue());
        }
    }
}

आउटपुट

आवश्यक पैकेज आयात किए गए हैं
एक HashMap घोषित किया गया
HashMap के एलिमेंट्स हैं:
1 : Java
2 : Python
3 : Scala
4 : Javascript

उदाहरण 2

यहाँ, हम ऑपरेशन्स को फंक्शन्स में एनकैप्सुलेट करते हैं जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग प्रदर्शित करते हैं।

import java.util.HashMap;
import java.util.Map;

public class Demo {
    static void print(Map input_map) {
        System.out.println("HashMap के एलिमेंट्स हैं: ");
        for (Map.Entry set : input_map.entrySet()) {
            System.out.println(set.getKey() + " : " + set.getValue());
        }
    }
    
    public static void main(String[] args) {
        System.out.println("आवश्यक पैकेज आयात किए गए हैं");
        Map input_map = new HashMap();
        input_map.put("1", "Java");
        input_map.put("2", "Python");
        input_map.put("3", "Scala");
        input_map.put("4", "Javascript");
        System.out.println("एक HashMap घोषित किया गया\n");
        print(input_map);
    }
}

आउटपुट

आवश्यक पैकेज आयात किए गए हैं
एक HashMap घोषित किया गया
HashMap के एलिमेंट्स हैं:
1 : Java
2 : Python
3 : Scala
4 : Javascript

HashMap इटरेशन के सभी तरीके

तरीकाकोडकुंजी + मानप्रदर्शननोट्स
entrySet()for (Entry e : map.entrySet())हाँसबसे तेज़सिंगल लुकअप, पसंदीदा
keySet() + get()for (K k : map.keySet()) v = map.get(k)हाँधीमाप्रति एलिमेंट 2 लुकअप्स
values()for (V v : map.values())केवल मानतेज़जब केवल मान चाहिए
forEach (Java 8+)map.forEach((k,v) -> ...)हाँतेज़फंक्शनल स्टाइल
IteratorIterator it = map.entrySet().iterator()हाँमानकइटरेशन के दौरान remove() अनुमत
Stream APImap.entrySet().stream()...हाँमानकफिल्टर/मैप/कलेक्ट चेनिंग

पूर्ण उदाहरण: सभी तरीके

Map map = new HashMap<>();
map.put("A", 1); map.put("B", 2); map.put("C", 3);

// 1. entrySet - सबसे आम
for (Map.Entry entry : map.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}

// 2. keySet - जब केवल कुंजियाँ चाहिए
for (String key : map.keySet()) {
    System.out.println(key + "=" + map.get(key));
}

// 3. values - जब केवल मान चाहिए
for (Integer value : map.values()) {
    System.out.println(value);
}

// 4. Java 8 forEach
map.forEach((k, v) -> System.out.println(k + "=" + v));

// 5. Stream के साथ फिल्टरिंग
map.entrySet().stream()
    .filter(e -> e.getValue() > 1)
    .forEach(e -> System.out.println(e.getKey() + "=" + e.getValue()));

// 6. इटरेशन के दौरान सुरक्षित हटाना
Iterator> it = map.entrySet().iterator();
while (it.hasNext()) {
    if (it.next().getValue() == 2) {
        it.remove();  // सुरक्षित हटाना
    }
}

सर्वोत्तम अभ्यास

  • डिफ़ॉल्ट रूप से entrySet() उपयोग करें जब कुंजी और मान दोनों की आवश्यकता हो
  • इटरेशन के दौरान संरचनात्मक संशोधन से बचें (ConcurrentModificationException)
  • हटाने के लिए Iterator.remove() उपयोग करें इटरेशन के दौरान
  • ConcurrentHashMap के लिए forEach थ्रेड-सेफ है लेकिन कमजोर संगति देता है
  1. - जावा में List से डुप्लिकेट तत्वों को हटाने का प्रोग्राम

    List से डुप्लिकेट हटाने के लिए, कोड निम्नानुसार है: उदाहरण import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Set; public class Demo {     public static void main(String[] args){       ArrayList<String> list = new ArrayList<String>(); &n

  1. - जावा में HashMap के तत्वों को कैसे प्रिंट करें?

    HashMap AbstractMap क्लास का एक सबक्लास है और इसका उपयोग कुंजी और मान जोड़े को स्टोर करने के लिए किया जाता है। प्रत्येक कुंजी को मैप में एक मान से मैप किया जाता है और कुंजियाँ अद्वितीय होती हैं। इसका मतलब है कि हम एक कुंजी को मैप में केवल एक बार डाल सकते हैं और डुप्लीकेट कुंजियों की अनुमति नहीं है,

  1. - Java में Map इटरेशन में महारत: 4 सिद्ध तकनीकें

    Java में Map पर लूप करना। इस पोस्ट में, हम Java में मैप के माध्यम से इटरेट करने के चार अलग-अलग तरीकों को देखते हैं। Java 8 तक, हम forEach मेथड के साथ-साथ इटरेटर क्लास का उपयोग करके मैप पर लूप कर सकते हैं। Map Entries (Keys और Values) को कैसे इटरेट करें Map map = new HashMap(); for (Map.Entry entry :