/ / क्या हम सूची <टी> तक पहुंचने के लिए सरणी इंडेक्स जैसे इंडेक्स का उपयोग कर सकते हैं? - जावा

क्या हम सूची <टी> तक पहुंचने के लिए सरणी इंडेक्स जैसे इंडेक्स का उपयोग कर सकते हैं? - जावा

मैं सोच रहा हूं कि क्या हम सूची तक पहुंचने के लिए इंडेक्स का उपयोग कर सकते हैं

उदाहरण के लिए:

List<Integer> list;

list[5]     //blah....

उत्तर:

उत्तर № 1 के लिए 39

जबसे [] एक ऑपरेटर है और जावा ऑपरेटर अधिभार का समर्थन नहीं करता है, आप इसे सूची के साथ उपयोग नहीं कर सकते हैं। इसके बजाय आपको इसका उपयोग करना होगा set(int index, T value) तथा get(int index) विधियां, जो वर्बोज़ हो सकती हैं लेकिन सटीक समान कार्यक्षमता प्रदान करती हैं।


जवाब के लिए 22 № 2

List.get(int) आपको इंडेक्स का उपयोग कर तत्वों तक पहुंचने की अनुमति देता है।


जवाब के लिए 6 № 3

आप के उपयोग के माध्यम से अपनी अनुक्रमणिका का उपयोग कर सूची तत्वों तक पहुंच सकते हैं प्राप्त तरीका:

प्राप्त

सार्वजनिक वस्तु प्राप्त करें (int अनुक्रमणिका)

रिटर्न निर्दिष्ट स्थिति पर तत्व इस सूची में।

पैरामीटर: सूचकांक - वापस करने के लिए तत्व की अनुक्रमणिका।

यह दिखाता है: निर्दिष्ट स्थिति पर तत्व इस सूची में।

फेंकता: इंडेक्सऑटऑफबाउंड अपवाद - अगर सूचकांक सीमा से बाहर है (सूचकांक <0 || अनुक्रमणिका> = आकार ())।

ध्यान रखें कि सूची में सूचकांक 0 आधारित है।


जवाब के लिए 5 № 4

यहां बहुत सारे अच्छे उत्तर हैं, लेकिन मैं बस इसे इंगित करना चाहता हूं list.get(i) के समान है list[i] केवल तभी जब सूची एक सरणी (i.e ArrayList) के साथ कार्यान्वित की जाती है। यदि यह एक लिंक्डलिस्ट है तो आप वास्तव में अनुक्रमणित नहीं कर रहे हैं get, बल्कि इसके बजाय पुनरावृत्त।

तो यदि आप उपयोग करते हैं get() इंटरफ़ेस प्रकार सूची के साथ, विशेष रूप से एक लूप में, आपको यह जांचना चाहिए कि यह कैसे कार्यान्वित किया गया है, जैसा कि get() ArrayList के साथ ओ (1) जबकि get() लिंक्डलिस्ट के साथ ओ (एन) (बहुत धीमी) है।


जवाब के लिए 3 № 5

उपयोग करने के लिए एक विकल्प get(int) का उपयोग कर एक ऐरे बनाने के लिए है toArray()

List<T> list = ...

Object[] array = list.toArray();

अगर टी है जानने वाला, toArray(T[]) वापस करने के लिए इस्तेमाल किया जा सकता है T[] के बजाय Object[].
का उपयोग toArray इसके बजाए केवल सार्थक है get, अगर एक सरणी वास्तव में जरूरी है (बहुत से उपयोग)।


जवाब के लिए 2 № 6

नहीं, आप जावा में ऐसा नहीं कर सकते हैं।


जवाब के लिए 2 № 7

नहीं, आप "तक सीमित हैं List.get (i).

ब्रैकेट्स [] सिंटैक्स स्तर पर परिभाषित किया गया है, विधि-नाम के रूप में नहीं, इसलिए आप उन्हें ओवरराइड नहीं कर सकते हैं। इन्हें केवल सरणी के लिए उपयोग किया जाता है।

यदि आप स्कैला में माइग्रेट करना चाहते हैं, तो JVM के लिए एक और आधुनिक भाषा, आपको "सरणी और सूचियों के लिए एक एकीकृत पहुंच मिल जाएगी, लेकिन दोनों के साथ () कोष्ठक।