इस लेख में, हम समझेंगे कि 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 | हाँ | सबसे तेज़ | सिंगल लुकअप, पसंदीदा |
| 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) -> ...) | हाँ | तेज़ | फंक्शनल स्टाइल |
| Iterator | Iterator | हाँ | मानक | इटरेशन के दौरान remove() अनुमत |
| Stream API | map.entrySet().stream()... | हाँ | मानक | फिल्टर/मैप/कलेक्ट चेनिंग |
पूर्ण उदाहरण: सभी तरीके
Mapmap = 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 थ्रेड-सेफ है लेकिन कमजोर संगति देता है