जावा में डिक्शनरी कैसे बनाते हैं? [बन्द है]


236

मैं एक शब्दकोश (भौतिक पुस्तक में) को लागू करने की कोशिश कर रहा हूं। मेरे पास शब्दों और उनके अर्थों की एक सूची है।

जावा द्वारा शब्दों और उनके अर्थों की सूची को कुंजी / मान जोड़े के रूप में संग्रहीत करने के लिए जावा क्या डेटा संरचना / प्रकार प्रदान करता है।

कैसे, एक कुंजी दी गई है, क्या मैं मूल्य पा सकता हूं और वापस कर सकता हूं?


24
खैर, सवाल पर ध्यान केंद्रित करने की भावना में, उपयोगकर्ता नहीं, मैं फिर से खोलने के लिए मतदान कर रहा हूं। मुझे यकीन है कि इस उपयोगकर्ता ने वैसे भी अब तक कोर्स पूरा कर लिया है। ;) यह stackoverflow.com/questions/1540673/… का एक डुप्लिकेट है , लेकिन मुझे लगता है कि यहाँ उत्तर बेहतर हैं।
आदि इनबार

जवाबों:


313

आप एक चाहता हूँ Map<String, String>Mapइंटरफ़ेस को लागू करने वाली कक्षाएं शामिल हैं (लेकिन इन तक सीमित नहीं हैं):

प्रत्येक को कुछ स्थितियों के लिए डिज़ाइन / अनुकूलित किया गया है (अधिक जानकारी के लिए उनके संबंधित डॉक्स पर जाएं)। HashMapशायद सबसे आम है; जाने के लिए डिफ़ॉल्ट।

उदाहरण के लिए (ए HashMap) का उपयोग कर :

Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.println(map.get("dog"));
जानवर का प्रकार

1
@ क्रंचर यह भी लागू होता है Map( जावदोक की जांच करें)
अर्शजी

1
@ वर्षाजी मुझे संदेह है कि हम मैन्युअल रूप से शब्दकोश में सभी तारों को मैप करते हैं या मैं कह सकता हूं कि हम मैन्युअल रूप से सभी शब्दों का अर्थ संग्रहीत करते हैं। तो मेरा प्रश्न यह है कि क्या शब्दों को लाने और उनके अर्थ / परिभाषा को लाने के लिए शब्दकोश की db (डंप) फाइलों की तरह कोई तरीका है ताकि हम प्रत्येक शब्द के अर्थ को मैन्युअल रूप से जोड़ने से बच सकें
Vighanesh Gursale

@VighaneshGursale आपको एक्सटेशन के दौरान अपनी डेटा संरचना बनाने के लिए एक पुट विधि का उपयोग करना होगा। डिस्क से फ़ाइल को पढ़ने के रूप में एक पुट कमांड के बारे में सोचो, और इसे मेमोरी (रैम) में रखकर ताकि आप इसके साथ काम कर सकें। यदि आपके पास एक ऐसी फाइल है जिसे आप लोड ऑटो पर डेटा संरचना के रूप में लोड करना चाहते हैं, तो आपको जावा स्प्रिंग में देखने की जरूरत है, लेकिन इसके जटिल।
डैन सिबोरोव्स्की - एमएसएफटी

5
वैसे, आपको वास्तव में दूसरी बार <स्ट्रिंग, स्ट्रिंग> को शामिल करने की आवश्यकता नहीं है। आप बस कर सकते हैंMap<String, String> map = new HashMap<>();
सैमुअल नॉयस

आप समवर्ती
हाशपास्ट

80

यह पाठ (स्ट्रिंग) का शब्दकोश बनाता है:

Map<String, String> dictionary = new HashMap<String, String>();

आप तब इसे एक के रूप में उपयोग करते हैं:

dictionary.put("key", "value");
String value = dictionary.get("key");

काम करता है, लेकिन एक त्रुटि देता है जिसे आपको कंस्ट्रक्टर वर्ग को घोषणा वर्ग के समान रखने की आवश्यकता होती है। मुझे पता है कि यह मूल वर्ग से विरासत में मिला है लेकिन, दुर्भाग्य से यह रनटाइम पर एक त्रुटि देता है।

Map<String, String> dictionary = new Map<String, String>();

यह ठीक से काम करता है।


3
dictionary["key"]काम नहीं करेगा - यह होना चाहिए dictionary.get("key")
अर्धजी

21
सच है, शायद कुछ C # में फिसल गया :)
SmartK8

12

मानचित्र इंटरफ़ेस का उपयोग करें और हाशप जैसे कार्यान्वयन


1
किसी समाधान का लिंक स्वागत योग्य है, लेकिन कृपया सुनिश्चित करें कि आपका उत्तर इसके बिना उपयोगी है: लिंक के चारों ओर संदर्भ जोड़ें ताकि आपके साथी उपयोगकर्ताओं को कुछ पता चले कि यह क्या है और यह क्यों है, तो आप जिस पृष्ठ का सबसे प्रासंगिक हिस्सा उद्धृत करते हैं ' लक्ष्य पृष्ठ अनुपलब्ध होने की स्थिति में पुनः लिंक करना। ऐसे लिंक जो किसी लिंक से बहुत कम हैं उन्हें हटाया जा सकता है।
फेलिक्सएसएफडी

6

एक सार वर्ग शब्दकोश है

http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html

हालाँकि इसके लिए कार्यान्वयन की आवश्यकता है।

जावा हमें एक अच्छा कार्यान्वयन देता है जिसे हैशटेबल कहा जाता है

http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html


6
Dictionaryआज्ञाकारी है और कार्यान्वयन में से कोई भी इसे विस्तारित नहीं करता है।
asgs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.