एक खेल मैं खिलाड़ियों की एक सूची है में, इस तरह मान लीजिए:जावा में एक इटरेटर क्लोन करें?
LinkedList<String> players = new LinkedList<String>();
मैं प्रत्येक खिलाड़ी अन्य खिलाड़ियों में से प्रत्येक के साथ बातचीत बताना चाहते हैं, तो मैं दो नेस्टेड छोरों लिखें:
Iterator<String> i1 = players.iterator();
while (i1.hasNext()) {
String p1 = i1.next();
Iterator<String> i2 = players.iterator();
// But I want to do this: Iterator<String> i2 = i1.clone();
while (i2.hasNext()) {
String p2 = i2.next();
System.out.println("Interact: " + p1 + ", " + p2);
}
}
चूंकि मैं केवल खिलाड़ियों की प्रत्येक जोड़ी को एक बार बातचीत करना चाहता हूं, इसलिए मैं बाहरी लूप के वर्तमान प्लेयर के बाद प्लेयर के साथ आंतरिक लूप शुरू करना चाहता हूं। तो मैं इटेटरेटर क्लोन करना चाहता हूं, लेकिन यह संकलित नहीं करता है।
तो, मुझे इसके बजाय क्या करना चाहिए?
क्यों न केवल 'ऐरेलिस्ट' का उपयोग क्यों करें? स्थिति का उपयोग कर एक एल्गोरिदम उस डेटा संरचना के साथ तुच्छ होगा। –
क्या यह परिणाम ए के साथ खिलाड़ी ए जोड़ना नहीं होगा? –
@ किर्क: हाँ, एक ऐरेलिस्ट काम करेगा, लेकिन चूंकि मुझे सूची के मध्य में खिलाड़ियों को सम्मिलित करना और निकालना पड़ सकता है, इसलिए मुझे एक लिंक्डलिस्ट चाहिए। –