2012-11-24 33 views
157

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

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

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

+16

ठीक है, सवाल है, नहीं उपयोगकर्ता पर ध्यान केंद्रित की भावना में, मैं फिर से खोलने के मतदान कर रहा हूँ। मुझे यकीन है कि इस उपयोगकर्ता ने अब तक पाठ्यक्रम पूरा कर लिया है। ;) यह http://stackoverflow.com/questions/1540673/java-equivalent-to-python- शब्दकोश का डुप्लिकेट है, लेकिन मुझे लगता है कि यहां के उत्तरों बेहतर हैं। –

उत्तर

8

उपयोग Map interface और तरह HashMap

+0

समाधान के लिए एक लिंक का स्वागत है, लेकिन कृपया सुनिश्चित करें कि आपका उत्तर इसके बिना उपयोगी है: [लिंक के चारों ओर संदर्भ जोड़ें] (// meta.stackexchange.com/a/8259) ताकि आपके साथी उपयोगकर्ताओं को कुछ पता चल जाएगा कि यह क्या है और यह वहां क्यों है, फिर लक्ष्य पृष्ठ अनुपलब्ध होने पर आप जिस पृष्ठ से लिंक कर रहे हैं उसके सबसे प्रासंगिक भाग को उद्धृत करें। [उत्तर जो किसी लिंक से थोड़ा अधिक हटा दिए जा सकते हैं।] (// stackoverflow.com/help/deleted-answers) – FelixSFD

+1

जबकि यह लिंक प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक हिस्सों को शामिल करना और प्रदान करना बेहतर है संदर्भ के लिए लिंक। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/17044904) – sfat

5

एक कार्यान्वयन वहाँ एक सार कक्षा शब्दकोश

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

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

जावा हमें देता है एक अच्छा कार्यान्वयन नामक एक Hashtable

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

+4

'शब्दकोश' अप्रचलित है और कोई भी कार्यान्वयन इसे विस्तारित नहीं करता है। – asgs

48

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

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

आप तो एक के रूप में उपयोग:

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

'शब्दकोश ["कुंजी"]' काम नहीं करेगा - यह 'dictionary.get ("key") होना चाहिए। – arshajii

+9

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

221

आप 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")); 
 
type of animal 
+1

@ क्रंचर यह 'मानचित्र' लागू करता है (जावाडोक की जांच करें) – arshajii

+1

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

+0

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