बस .retainAll { ... }
या .removeAll { ... }
, दोनों एक विधेय को स्वीकार करने, यथा-स्थान यह फिल्टर करने के लिए उपयोग करें:
items.retainAll { shouldRetain(it) }
items.removeAll { shouldRemove(it) }
ध्यान दें कि items
कि के लिए एक MutableList<T>
ही नहीं, List<T>
होना चाहिए , जो कोटलिन में केवल पढ़ने योग्य सूची है और इस प्रकार किसी भी उत्परिवर्तनीय कार्यों का खुलासा नहीं करता है (देखें: Collections भाषा संदर्भ में)।
वैसे, इन दोनों समारोह सूचियों कि रैंडम एक्सेस का समर्थन के लिए कुशलता से लागू किया जाता है: फिर सूची के बाद प्रत्येक आइटम (O (n) समय बुरी से बुरी हालत) निकाल दिया जाता है जमा नहीं है, और इसके बजाय वस्तुओं को संसाधित किया जाता है क्योंकि इसे संसाधित किया जाता है, ओ (एन) समय दे रहा है।
और अगर आप मूल सूची को संशोधित नहीं करना चाहते हैं, तो आप केवल आइटम आप .filter { ... }
या .filterNot { ... }
का उपयोग कर बनाए रखना चाहते के साथ एक अलग संग्रह उत्पादन कर सकते हैं, इस के लिए केवल पढ़ने के लिए List<T>
रूप में अच्छी तरह से काम करेगा :
val filtered = items.filter { shouldRetain(it) }
val filtered = items.filterNot { shouldRemove(it) }
क्यों एंड्रॉयड टैग के साथ आगे बढ़ना चाहते हैं तो क्या होगा? – user7294900
बस इस कोड को कोटलिन फ़ाइल में कॉपी करें, आईडीई स्वचालित रूप से आपके लिए यह करता है। – chandil03