2011-02-14 16 views
6

जावा में सरणियों कुछ इस तरह कर सकता है, तो मैं सोच रहा हूँ:क्या जावा सहयोगी सरणी का समर्थन करता है?

int[] a = new int[10]; 
a["index0"] = 100; 
a["index1"] = 100; 

मैं जानता हूँ कि मैं अन्य भाषाओं में समान सुविधाएँ देखा है, लेकिन मैं किसी भी बारीकियों के साथ वास्तव में परिचित नहीं हूँ ... बस ऐसे ही केवल संख्यात्मक सूचकांक के बजाय स्ट्रिंग स्थिरांक के साथ मानों को जोड़ने के तरीके हैं। क्या जावा में ऐसी चीज हासिल करने का कोई तरीका है?

उत्तर

3

मैं सी ++ के बारे में एक बात पता नहीं है, लेकिन आप शायद एक क्लास the Map interface लागू करने के लिए देख रहे हैं।

+0

aaah ,,, तो यह अस्तित्व में है। नक्शा वर्ग। धन्यवाद। मैं जावा में नया हूं :) – Fugogugo

+0

@ फ़ुगोगुगो चूंकि आप जावा के लिए नए हैं, इसलिए यह ध्यान देने योग्य है कि आप किसी मानचित्र में कुछ भी नहीं छू सकते हैं। यदि आप एक ट्रीमैप का उपयोग करते हैं जो भी आपकी चाबियों को तुलनात्मक इंटरफेस को लागू करने की आवश्यकता है। यदि आप हैश मैप का उपयोग करते हैं, तो सुनिश्चित करें कि आपके पास हैशकोड है और नक्शे में रखे कुंजियों पर ओवरराइड विधियों के बराबर है। हालांकि, हैशकोड और बराबर के डिफ़ॉल्ट कार्यान्वयन कई मामलों में पर्याप्त होंगे। –

+0

प्रतीक्षा करें, क्या ?? इतनी भ्रमित टिप्पणी –

2

आपको क्या चाहिए java.util.Map<Key, Value> इंटरफेस और के रूप में कुंजी

+0

शायद एक 'हैश मैप'। –

+0

@ जैकोब का मतलब है 'हैशटेबल' –

+2

@ फ़ूबाह उह, नहीं। –

17

इसके कार्यान्वयन (जैसे HashMap) String साथ आप एक जावा सरणी के साथ ऐसा नहीं कर सकते है। ऐसा लगता है कि आप java.util.Map का उपयोग करना चाहते हैं।

Map<String, Integer> a = new HashMap<String, Integer>(); 

// put values into the map 
a.put("index0", 100); // autoboxed from int -> Integer 
a.put("index1", Integer.valueOf(200)); 

// retrieve values from the map 
int index0 = a.get("index0"); // 100 
int index1 = a.get("index1"); // 200 
+0

आह, तो ऐसा ही है .. हैशप हुह? धन्यवाद :) – Fugogugo

+2

@Fugogugo: 'हैश मैप' एक कार्यान्वयन वर्ग है; 'मानचित्र' इंटरफ़ेस है। मैं 'मानचित्र' इंटरफ़ेस के खिलाफ कोडिंग की अनुशंसा करता हूं, जो इस मामले में आपके चर को 'मानचित्र' के रूप में घोषित करने का अर्थ है, न कि 'हैश मैप'। –

0

क्या आप HashMap<k,v>() कक्षा की तलाश में हैं? यहां javadocs देखें।

मोटे तौर पर उपयोग होगा:

HashMap<String, int> a = new HashMap<String,int>(); 
a.put("index0", 100); 

आदि

+2

मानचित्र प्राइमेटिव का उपयोग नहीं कर सकते हैं। इसे 'मानचित्र <स्ट्रिंग, इंटीजर>' होना होगा; इसी तरह, यह 'मैप' के रूप में घोषित करने के लिए आमतौर पर बेहतर अभ्यास है, न कि 'हैश मैप'। –

+0

मैं पहले से ही कोशिश कर रहा हूं। हाँ यह आदिम का उपयोग नहीं कर सकता है। लेकिन अवधारणा सही है। धन्यवाद। :) – Fugogugo

2

स्ट्रिंग कुंजी के साथ चीजों को स्टोर करने के लिए, आप एक मानचित्र की जरूरत है। आप मानचित्र पर स्क्वायर ब्रैकेट का उपयोग नहीं कर सकते हैं। आप इसे C++ में कर सकते हैं क्योंकि यह ऑपरेटर ओवरलोडिंग का समर्थन करता है, लेकिन जावा नहीं करता है।

a proposal to add this syntax for maps है, लेकिन इसे Java 8 at the earliest के लिए जोड़ा जाएगा।

+0

आपका जावा 8 लिंक टूटा हुआ है। –

+0

@ एंड्रयू कोलेसन: आघ, यह एक बहुत बेवकूफ टाइपो है; इसे बनाने के लिए क्षमा चाहते हैं, और इसे इंगित करने के लिए धन्यवाद। फिक्स्ड। –

0

जावा में अभी तक सहयोगी सरणी नहीं है। लेकिन इसके बजाय आप एक हैश मानचित्र का उपयोग वैकल्पिक रूप से कर सकते हैं।

संबंधित मुद्दे