सूचियां तत्वों के अनुक्रमिक क्रम का प्रतिनिधित्व करती हैं। मानचित्र का उपयोग कुंजी/मूल्य जोड़े के संग्रह का प्रतिनिधित्व करने के लिए किया जाता है।
जबकि आप एक सूची के रूप में मानचित्र का उपयोग कर सकते हैं, ऐसा करने के कुछ निश्चित डाउनसाइड्स हैं।
आदेश बनाए रखना: - परिभाषा द्वारा एक सूची का आदेश दिया गया है। आप आइटम जोड़ते हैं और फिर आप आइटम को सम्मिलित करने के क्रम में सूची के माध्यम से पुन: सक्रिय करने में सक्षम होते हैं। जब आप हैश मैप में आइटम जोड़ते हैं, तो आपको उन ऑर्डर को पुनर्प्राप्त करने की गारंटी नहीं दी जाती है, जिन्हें आप उन्हें डालते हैं। हैश मैप के उप-वर्ग हैं जैसे लिंकड हैशैप जो आदेश बनाए रखेंगे, लेकिन सामान्य क्रम में मानचित्र के साथ गारंटी नहीं है।
की/मान अर्थ विज्ञान: - एक मानचित्र के प्रयोजन के लिए एक महत्वपूर्ण है कि बाद में किसी समय आइटम को पुन: प्राप्त करने के लिए इस्तेमाल किया जा सकता है के आधार पर आइटम स्टोर करने के लिए है। समान कार्यक्षमता केवल सीमित मामले में एक सूची के साथ हासिल की जा सकती है जहां कुंजी सूची में स्थिति होती है।
कोड पठनीयता निम्नलिखित उदाहरणों पर विचार करें।
// Adding to a List
list.add(myObject); // adds to the end of the list
map.put(myKey, myObject); // sure, you can do this, but what is myKey?
map.put("1", myObject); // you could use the position as a key but why?
// Iterating through the items
for (Object o : myList) // nice and easy
for (Object o : myMap.values()) // more code and the order is not guaranteed
संग्रह कार्यक्षमता कुछ बड़ी उपयोगिता कार्यों संग्रह वर्ग के माध्यम से सूचियों के लिए उपलब्ध हैं। उदाहरण के लिए ...
// Randomize the list
Collections.shuffle(myList);
// Sort the list
Collections.sort(myList, myComparator);
आशा इस मदद करता है,
'Lists' और' Maps' दो * पूरी तरह से * अलग डेटा संरचनाओं, विभिन्न कार्यों और अपरिवर्तनशीलताओं के साथ हैं। क्या आप उन संदर्भ/आवश्यकताओं को समझा सकते हैं जिनके बारे में आप सोच रहे हैं कि दोनों स्वीकार्य समाधान होंगे? –
स्पष्ट रूप से आपको किसी विशेष क्रम में * चीजों का एक सेट रखने की आवश्यकता नहीं है * ... –
डाउनवोट, क्यों? मुझे लगता है कि यह एक उचित सवाल है। यद्यपि ज्ञान की कमी दिखाता है, लेकिन ज्ञान की कमी दिखाने के लिए SO सवाल पर डाउनवॉट नहीं किया जाना चाहिए। वास्तव में एक प्रश्न हमेशा ज्ञान की कमी का परिणाम होता है। –