2015-07-03 6 views
5

मैं पढ़ रहा था संग्रह को लागू नहीं करते और उसके बाद मैं इस बयानकैसे यह संभव के लिए-प्रत्येक वर्ग के लिए पाश कि <strong>पूरा संदर्भ</strong> से Iterable

संग्रह इंटरफ़ेस का सामना करना पड़ा उपयोग करने के लिए है

संग्रह इंटरफ़ेस वह आधार है जिस पर संग्रह फ्रेमवर्क बनाया गया है क्योंकि इसे किसी भी वर्ग द्वारा लागू किया जाना चाहिए जो संग्रह को परिभाषित करता है। संग्रह एक सामान्य इंटरफ़ेस है जिसमें यह घोषणा है: interface Collection<E>। यहां, ई ऑब्जेक्ट्स का प्रकार निर्दिष्ट करता है जो संग्रह होगा। संग्रह Iterable इंटरफ़ेस का विस्तार करता है। इसका मतलब है कि सभी संग्रहों को द्वारा लूप के लिए प्रत्येक शैली के उपयोग के माध्यम से साइकिल चलाया जा सकता है। (याद रखें कि केवल लागू करने वाले वर्गों को इटरटेबल को इसके द्वारा साइकिल चलाया जा सकता है)।

पिछली दो पंक्तियों में, यह लिखा गया है कि केवल उन वर्गों को जो इटरटेबल इंटरफेस को लागू करते हैं, उन्हें लूप के माध्यम से साइकिल चलाया जा सकता है। लेकिन, मुझे लगता है कि ऑब्जेक्ट क्लास अस्थिर इंटरफ़ेस को लागू नहीं करता है, फिर हम स्ट्रिंग्स, इंटीग्रर्स इत्यादि के मामले में प्रत्येक लूप का उपयोग कैसे कर सकते हैं।

+0

'याद रखें कि केवल कक्षाएं जो इटरटेबल को लागू करती हैं, के लिए साइकिल चलाया जा सकता है।' और सरणी, आइए के बारे में मत भूलना। – biziclop

उत्तर

5

यह सच है। java.lang.ObjectIterable<T> इंटरफ़ेस को लागू नहीं करता है।

हम ऑब्जेक्ट्स के माध्यम से पुन: प्रयास कर सकते हैं क्योंकि ऑब्जेक्ट धारक (उदा। Collection) Iterable<T> स्वचालित रूप से लागू करता है, आवश्यक रूप से संग्रह के ऑब्जेक्ट्स भाग को लागू नहीं करता है।

+0

@ क्रेजीजवाकिंग-ओह, इसे दोस्त मिला। –

+0

बोल्ड में इतना टेक्स्ट क्यों? – Puce

3

यदि आप तारों या पूर्णांक के संग्रह के माध्यम से पुनरावृत्त कर रहे हैं, तो यह संग्रह है जो स्ट्रिंग या पूर्णांक नहीं है। पुनरावृत्ति में वस्तुओं को पुन: प्रयोज्य नहीं होना चाहिए; कंटेनर करता है।

3

आप कभी भी एक पूर्णांक के माध्यम से पुनरावृत्ति नहीं करना चाहते हैं, न ही आप कभी ऐसा कुछ कर सकते हैं। एक पूर्णांक एक इकाई है, जबकि पुनरावृत्त इंटरफेस इकाइयों के एक सहयोगी के संदर्भ में है। उदाहरण के लिए:

List<Integer> intList = new ArrayList<Integer>(); 

for (Integer i : intList) { 
    System.out.println(i); 
} 
संबंधित मुद्दे