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

Popular posts from this blog

apache - 504 Gateway Time-out The server didn't respond in time. How to fix it? -

c# - .net WebSocket: CloseOutputAsync vs CloseAsync -

c++ - How to properly scale qgroupbox title with stylesheet for high resolution display? -