此問題類似於What is the best way to filter a Java Collection?「基於謂詞過濾a java.util.Collection
」。與在沒有外部庫的情況下過濾Java列表
- 濾波器代替進行(
O(1)
存儲器不包括輸入),因爲該列表是大的額外要求 - 不需要外部庫(即番石榴,Apache的共享空間,等等)可被用於
- Java 7的兼容(沒有Java 8流)
我們可以假設java.util.Collection
類型是java.util.List
實現.remove(int)
可能的解決方案:
- 使用的
List
的Iterator
的.remove()
方法。這可能會引發UnsupportedOperationException
因爲.remove()
方法任選負載在Iterator
- 是遍歷列表使用索引,
.size()
寫我們自己的迭代器,並.remove(int)
是否有任何簡單的解決方案?
是Iterator.remove()
對所有執行.remove(int)
的標準Java List
和/或Collection
執行嗎?
@AndyTurner,謝謝。我已經更新了我的問題的最後一點,然後:「Iterator.remove()是否實現了所有標準Java List和/或實現'.remove(int)'?」的集合類。 – arcyqwerty
使用for循環,但從列表的末尾開始並遞減到開始。這種方式刪除元素不會影響指數計數器。 –
@BoristheSpider它適用於一般性的非Android特定問題。我確實在問題中指定了Java 7。 – arcyqwerty