Java में HashMap
scores नाम का एक HashMap<String, String> बनाएँ, scores.put("oak", "leaf"); कॉल करें, फिर scores.get("oak") छापें। Desk.java को कंपाइल करें और java Desk चलाएँ। स्क्रीन पर एक पंक्ति दिखनी चाहिए: leaf। कुंजी "oak" मान "leaf" को ढूँढती है। एक जोड़ा रखना और उसी कुंजी से वापस पढ़ना — यही इस पृष्ठ का पाठ है।
एक कुंजी जो मान ढूँढती है
list-methods पृष्ठ पर आप स्लॉट संख्या से मान तक पहुँचते थे: get(0)। HashMap उस कुंजी से मान तक पहुँचता है जो आप चुनते हैं। जोड़ा आप put से लिखते हैं। मान आप get और वही कुंजी से पढ़ते हैं। इस पाठ के शिक्षण पथ पर शून्य स्लॉट नहीं है — कुंजी ही लेबल है।
Desk.java खोलें। सार्वजनिक क्लास का नाम Desk रखें ताकि फ़ाइल नाम से मेल खाए। बचे हुए ArrayList पंक्तियाँ, tags.get(0), tags.size(), tags.remove(0) और कोई भी Rack या Shelf डेमो हटा दें। वे सूची पृष्ठों के हैं। कोई भी Scanner, nextLine या कीबोर्ड पढ़ना भी हटा दें। प्रोग्राम टाइप करने का इंतज़ार नहीं करना चाहिए।
ऊपर के पास, public class Desk के ऊपर लिखें:
import java.util.HashMap;
यह इंपोर्ट HashMap टाइप को छोटे नाम तक पहुँचाता है। इसके बिना इस पृष्ठ पर javac छोटा नाम HashMap नहीं देखता। java.util और HashMap सावधानी से लिखें। यहाँ import java.util.*; को ज़रूरत न बनाएँ — एक सटीक इंपोर्ट काफी है।
main के अंदर मैप बनाएँ:
HashMap<String, String> scores = new HashMap<String, String>();
कोण कोष्ठक में पहला टाइप कुंजी का प्रकार है। दूसरा मान का प्रकार है। इस पृष्ठ पर दोनों String हैं ताकि डेमो शब्दों पर रहे। नाम scores वही है जो आप शिक्षण फ़ाइल में रखते हैं। कॉल new HashMap<String, String>() खाली मैप बनाती है। इस पल में इसमें कोई जोड़ा नहीं है।
oak को leaf रखें, फिर oak पढ़ें
अपनी पंक्ति पर scores.put("oak", "leaf"); कॉल करें। पहला उद्धृत शब्द कुंजी है। दूसरा उद्धृत शब्द मान है। put के अंदर क्रम मायने रखता है: पहले कुंजी, फिर मान। रखी गई फ़ाइल में उन्हें न बदलें।
फिर लिखें:
System.out.println(scores.get("oak"));
get को वही कुंजी "oak" दें। रखी फ़ाइल के लिए get आर्ग्युमेंट के रूप में "leaf" न दें — get कुंजी माँगता है, मान नहीं। scores.get(0) न लिखें — वह Rack की सूची आकृति है, यहाँ की मैप आकृति नहीं। कंपाइल से पहले सहेजें।
import java.util.HashMap;
public class Desk {
public static void main(String[] args) {
HashMap<String, String> scores = new HashMap<String, String>();
scores.put("oak", "leaf");
System.out.println(scores.get("oak"));
}
}
उस फ़ोल्डर से जहाँ Desk.java है, javac Desk.java चलाएँ। जब कोष्ठक, ब्रेसेस, कोण कोष्ठक और अर्धविराम मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Desk चलाएँ — न java Desk.java, न java HashMap। रन कमांड से .java अंत हटाएँ। वह क्लास शुरू करें जिसमें main है।
प्रोग्राम को एक पंक्ति छापकर रुकना चाहिए: leaf। उसे आपसे टाइप न माँगना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे, तो किसी पुराने अभ्यास का nextLine कॉल अभी किसी फ़ाइल में बचा है। वह कॉल हटाएँ और HashMap निर्माण, put पंक्ति तथा System.out.println(scores.get("oak")); रखें।
एक बार रन चलाएँ। Java Desk.main से शुरू होती है। इंपोर्ट पहले ही बता चुका है आपका मतलब कौन-सा HashMap है। new पंक्ति खाली मैप बनाती है। put जोड़ा oak → leaf रखता है। कॉल get("oak") मान leaf लौटाता है। प्रिंट पंक्ति वही शब्द लिखती है। स्क्रीन leaf दिखाती है। और कुछ नहीं छपना चाहिए। अगर oak दिखे, आपने कुंजी हाथ से छापी या गलत get आर्ग्युमेंट इस्तेमाल किया। अगर 2 या [pine] दिखे, अभी Rack का size या remove डेमो चल रहा है — java Desk पर जाएँ।
अगर javac कहे कि उसे HashMap नहीं मिलता, इंपोर्ट पंक्ति गायब है, गलत लिखी है, या public class Desk के बाद है। import java.util.HashMap; को क्लास पंक्ति के ऊपर ले जाएँ। अगर किसी put से पहले get("oak") कॉल करें, प्रिंट null दिखा सकता है क्योंकि वह कुंजी कभी संग्रहीत नहीं हुई। इस पृष्ठ पर put को get से पहले रखें। अगर बिना उद्धरण scores.put(oak, leaf); लिखें, javac शब्दों को ऐसे नाम मानता है जो मौजूद नहीं। कुंजी और मान दोनों के चारों ओर उद्धरण रखें।
पूरी मैप छापना — दूसरी नज़र
दूसरी Desk फ़ाइल उसी put के बाद मैप ऑब्जेक्ट छापती है। वह जोड़ी आकृति दिखाती है जो Java मैप स्वयं छापते समय इस्तेमाल करती है।
import java.util.HashMap;
public class Desk {
public static void main(String[] args) {
HashMap<String, String> scores = new HashMap<String, String>();
scores.put("oak", "leaf");
System.out.println(scores);
}
}
उस दूसरी फ़ाइल को उसी तरह कंपाइल और चलाएँ। स्क्रीन {oak=leaf} दिखाती है — कुंजी, बराबर चिह्न, मान, घुमावदार कोष्ठक में। यह आकृति पुष्टि के लिए उपयोगी है कि जोड़ा मैप के अंदर है। क्विज़ स्क्रीन leaf का शिक्षण पथ अभी भी पहली फ़ाइल है जिसमें get("oak") है। पूरी-मैप प्रिंट केवल संग्रहीत जोड़ा देखने के लिए उपयोग करें। किसी भी Desk फ़ाइल में get(0) न मिलाएँ — इस पृष्ठ पर मैप सूची स्लॉट संख्याएँ नहीं इस्तेमाल करतीं।
अगर स्क्रीन [] या [oak, pine] दिखाए, अभी ArrayList डेमो चल रहा है। HashMap और java Desk के साथ रहें।
सूची get और put की तुलना में
list-methods पृष्ठ पर get(0) को add के बाद स्लॉट इंडेक्स चाहिए था। इस पृष्ठ पर get("oak") को put के बाद कुंजी स्ट्रिंग चाहिए। बची Rack फ़ाइल जो केवल tags.get(0) छापती है अलग पाठ है। इस पृष्ठ के लिए Desk में put("oak", "leaf") और get("oak") रखें।
और put कॉल से आप और जोड़े रख सकते हैं। यह पृष्ठ एक जोड़ा रखता है ताकि कुंजी और छपा मान आसानी से दिखें। बाद का पृष्ठ — HashSet — अलग कुंजी-मान जोड़ी कहानी के बिना अद्वितीय मान रखता है। यहाँ HashMap put और get के साथ रहें।
जब पुरानी Rack.java या Shelf.java फ़ाइलें पास हों, उन्हें छोड़ दें या तभी हटाएँ जब वे भ्रमित करें कि आप कौन-सी क्लास चला रहे हैं। इस पाठ की HashMap फ़ाइल कंपाइल करने के बाद java Desk चलाएँ।
HashSet के लिए क्या बचता है
यह पृष्ठ HashMap से कुंजी-और-मान भंडारण खोलता है। अगला पृष्ठ HashSet से अद्वितीय मानों का सेट खोलता है। यहाँ मैप पर put और get के साथ रहें। इस पृष्ठ पर सेट का add ज़रूरत न बनाएँ; पाठ का लक्ष्य वह कुंजी है जो मान ढूँढती है और स्क्रीन leaf।
HashSet से पहले
आप java.util.HashMap इंपोर्ट कर सकते हैं, HashMap<String, String> scores बना सकते हैं, scores.put("oak", "leaf"); कॉल कर सकते हैं, फिर scores.get("oak") छाप सकते हैं। Desk.java कंपाइल करें और java Desk चलाएँ। स्क्रीन leaf दिखाती है। कुंजी ने मान ढूँढा। अगला पृष्ठ HashSet है, जहाँ आप उस पाठ के पथ पर प्रत्येक मान को अलग कुंजी से जोड़े बिना अद्वितीय मान रखते हैं।
इंपोर्ट क्लास के ऊपर रखें। put को get से पहले रखें। दोनों कॉल में कुंजी "oak" एक जैसी रखें। ये तीन आदतें आगे बढ़ने से पहले इस पृष्ठ का चेकपॉइंट हैं। जब get("oak") के बाद स्क्रीन leaf दिखाए, HashMap ने इस पाठ का काम कर दिया और आप अगले विषय के लिए तैयार हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी