【发布时间】:2015-04-06 08:51:36
【问题描述】:
给定一组位置Set<Integer> positionsToRemove,我想从列表List<?> list 中删除所有位置与该组中的值相对应的项目。
public static void remove(List<?> list, Set<Integer> positionsToRemove) {
// ?
}
注意事项:
- 列表可能很长。
- 集合可能很长。
- 小心不要陷入 IndexOutOfBounds 或 ConcurrentModificationException。
- 您可以假设列表和集合不包含空值。
【问题讨论】:
-
您真的要修改原始列表,还是可以返回新列表?
-
@LukasEder - 修改原始列表。
-
如果您希望生成的列表很短,构建新列表可能会更快,具体取决于原始列表中
remove()操作的复杂性。