मैं जावा में किसी वर्ग के लिए कस्टम इटरेटर को कार्यान्वित करने के तरीके के बारे में थोड़ा उलझन में हूं। मुझे अनिवार्य रूप से मेरे लिए पहले से उपलब्ध इनबिल्ट पुस्तकालयों का उपयोग किये बिना एक ऐरेलिस्ट बनाना आवश्यक है। मैं कक्षा बनाने की मूल बातें समझता हूं लेकिन मुझे यह समझने में परेशानी हो रही है कि इटरेटर को इन सब में फिट करने के लिए कैसे प्राप्त किया जाए। मैं निम्नलिखित है:कस्टम इटरेटर जावा बनाना?
मैं एक सामान्य वर्ग है कि इस तरह के रूप में iterable इंटरफ़ेस लागू करता है बनाया है यह कुछ इस तरह दिखता है:
public class MyArrayList<T> implements Iterable<T> {
मैं तो जिसके अनुसार एक वर्ग कहा जाता MyIterator बनाने के लिए मिल गया है दस्तावेज़ का शब्द एक स्टैंड अकेले वर्ग है। यह काफी सीधे आगे लगता है मैं MyIterator नामक एक नया वर्ग बनाने के लिए और यह इटरेटर इंटरफ़ेस को लागू तो यह कुछ इस तरह दिखता है:
public class MyIterator<T> implements Iterator<T>{
मेरे भ्रम निम्नलिखित में निहित है। दस्तावेज कहता है कि इटरेटर को अपनी कक्षा में होना जरूरी है, लेकिन फिर मैं "MyArrayList" में डेटा सदस्यों को उदाहरण के लिए हैकक्स्ट() और अगला() को पूरी तरह कार्यान्वित करने के लिए कैसे उपयोग करूं। चूंकि अंतर्निहित सरणी में डेटा सदस्य निजी हैं (जैसा कि वे होना चाहिए) मैं नहीं देखता कि बाहरी वर्ग इन तरीकों को पूरी तरह कार्यान्वित कैसे कर सकता है। क्या मैं गलत समझ रहा हूं कि क्या आवश्यक है? अलग वर्ग द्वारा यह अभी भी "MyArrayList" वर्ग का हिस्सा है लेकिन अलग-अलग परिभाषित किया गया है?
मुझे उम्मीद है कि मदद करता है, जैसा कि मैंने कहा था कि मुझे लगता है कि मुझे लगता है कि मुझे समझ में आता है कि मुझे क्या चाहिए, मुझे बिल्कुल यकीन नहीं है कि मेरा इटरेटर इस सब में फिट बैठता है।
'MyArrayList # इटरेटर()' 'रिटर्न नई MyIterator (यह)' या किसी भी तरह के लिए एक संदर्भ के लिए ही गुजरता है और जिससे डेटा – zapl
लिए पहुँच देता है तो MyArrayList वर्ग के MyIterator हिस्सा है या यह सामान्य रूप से अपने आप में जाना है , यह वह जगह है जहां मैं उलझन में हूं, मुझे नहीं पता कि "कहाँ" इटरेटर चला जाता है, अगर यह कोई समझ में आता है। मुझे पता है कि इटेटरेटर() विधि क्या करना है, लेकिन मुझे नहीं पता कि मुझे अपने कस्टम इटरेटर के लिए कोड कहां जोड़ना चाहिए ताकि यह इसका एक उदाहरण बना सके और जब मुझे इसकी आवश्यकता हो तो उसे वापस कॉल करें। – Scott