此问题类似于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