सादा जावा सरणियों (यानी String[] strings
) गतिशील रूप से आकार नहीं बदला जा सकता है; जब आप कमरे से बाहर होते हैं लेकिन आप अभी भी अपने सरणी में तत्व जोड़ना चाहते हैं, तो आपको एक बड़ा निर्माण करना होगा और मौजूदा सरणी को अपनी पहली n
स्थितियों में कॉपी करना होगा।
सौभाग्य से, java.util.List
कार्यान्वयन हैं जो आपके लिए यह काम करते हैं। java.util.ArrayList
और java.util.Vector
दोनों arrays का उपयोग करके लागू किए गए हैं।
लेकिन फिर, क्या आपको सचमुच परवाह है कि तारों को आंतरिक रूप से किसी सरणी में संग्रहीत किया जाता है, या क्या आपको केवल एक संग्रह की आवश्यकता है जो आपको कमरे से बाहर निकलने के बारे में चिंता किए बिना आइटम जोड़ने में मदद करेगी? यदि उत्तरार्द्ध है, तो आप वहां से कई सामान्य उद्देश्यों List
कार्यान्वयन को चुन सकते हैं। अधिकांश समय विकल्प हैं:
ArrayList
- मूल सरणी आधारित कार्यान्वयन,
Vector
सिंक्रनाइज़ नहीं - सिंक्रनाइज़, सरणी आधारित कार्यान्वयन
LinkedList
- दोगुना लिंक सूची कार्यान्वयन, बीच में आइटम डालने के लिए तेजी से सूची
क्या आप उम्मीद करते हैं कि आपकी सूची में डुप्लिकेट आइटम हों? यदि आपके उपयोग के मामले में डुप्लिकेट आइटम कभी मौजूद नहीं होना चाहिए, तो आपको java.util.Set
पसंद करना चाहिए। सेट्स को डुप्लिकेट आइटम रखने की गारंटी नहीं है। एक अच्छा सामान्य उद्देश्य सेट कार्यान्वयन java.util.HashSet
है। अनुवर्ती
उत्तर
एक सूचकांक $my_string_array["property"]
के लिए इसी तरह का उपयोग कर का उपयोग करने के लिए तार सवाल, आप एक Map<String, String>
में डाल करने के लिए भी java.util
पैकेज में की जरूरत है। एक अच्छा सामान्य उद्देश्य मानचित्र कार्यान्वयन HashMap
है।
एक बार जब आप अपने नक्शे बना लिया है,
- उपयोग
map.put("key", "string")
उसके प्रमुख द्वारा एक स्ट्रिंग का उपयोग करने की तार
- उपयोग
map.get("key")
जोड़ने के लिए।
ध्यान दें कि java.util.Map
में डुप्लिकेट कुंजी नहीं हो सकती हैं। यदि आप उसी कुंजी के साथ लगातार put
पर कॉल करते हैं, तो केवल नवीनतम कॉल में सेट मान ही रहेगा, पहले वाले लोग खो जाएंगे। लेकिन मुझे लगता है कि यह PHP सहयोगी सरणी के लिए भी व्यवहार है, इसलिए यह आश्चर्यचकित नहीं होना चाहिए।
बस सटीक होने के लिए, यह 'java.util' में है (सभी अन्य संग्रह वर्गों के साथ)। 'java.util.Collections' (अपरकेस सी के साथ) एक उपयोगिता वर्ग है, पैकेज नहीं। –
@ पीटर अच्छा पकड़, मैंने अनुवर्ती प्रश्न के रूप में –
को पोस्ट किया है, क्या स्ट्रिंग इंडेक्स बनाना भी संभव है [उदा .: $ my_string_array ["property"]]? – lock