java - Android: removing elements from list with iterator -
प्राइवेट व्यर्थ लेलटरफ़ॉर्ममेकशब्द (सूची & lt; स्ट्रिंग & gt; ए, सूची & lt; स्ट्रिंग & gt; बी) {ईटरेटर & lt; स्ट्रिंग & gt; मैं = a.iterator (); के लिए (स्ट्रिंग एस: बी) जबकि (i.hasNext ()) {ऑब्जेक्ट ओ = i.next (); अगर (ओ.स्टोस्टिंग ()। बराबर (एस)) {i.remove (); टूटना; }}}
मैं अपनी सूची के माध्यम से एक इटरेटर का उपयोग करके पाश के लिए उपयोग करता हूं और यदि एक मैच होता है तो सूची से एक तत्व को हटा दें उदाहरण के लिए: यदि a
= [a, y, f, z, b]
और b
= [a, f] < / Code> -> आउटपुट
a
= [ y, z, b
]
समस्या है अगर a
= [a, y, f, z, b]
और ख
= [f, a]
-> आउटपुट होगा < कोड> ए = [ a, y, z, b
] और इटरेटर शुरुआत में [[code> a ] मान नहीं निकालता है क्या पुनरावृत्त को रीसेट करने का कोई तरीका है जिससे कि हर बार मैं break
इटरेटर शुरुआत से शुरू होता है? या इस मुद्दे को हल करने का कोई बेहतर तरीका है?
आप एक इटरेटर को "रीसेट" नहीं कर सकते, लेकिन आप जब आप फिर से शुरुआत से फिर से फिरना चाहते हैं, तो आप एक नया प्राप्त कर सकते हैं इस तरह से:
यदि (ओ.स्टोस्टिंग ()। बराबर (एस)) {i.remove (); मैं = a.iterator (); टूटना; }
संपादित करें : जैसा कि @ एनजेज़ 2 ने अपनी टिप्पणी में कहा है, ऐसा करने के लिए बेहतर (अंतर्निर्मित) तरीके हैं।
Comments
Post a Comment