这个方法应该接受一个列表、一个元素、一个最小值(包括)和一个最大值(不包括)。然后它会删除范围内具有相同元素的所有元素。
例如,对于列表 (0, 0, 2, 0, 4, 0, 6, 0, 8, 0, 10, 0, 12, 0, 14, 0, 16),调用 removeInRange(list, 0 , 5, 13) 应该生成列表 (0, 0, 2, 0, 4, 6, 8, 10, 12, 0, 14, 0, 16)。
我在列表末尾附近删除了太多内容时遇到了麻烦。有什么建议么?
private static void removeInRange(List<Integer> thing, int element,
int firstInclusive, int secondExclusive) {
int i = firstInclusive;
while ( i >= firstInclusive && i < secondExclusive && i < thing.size()) {
if (thing.get(i)== element) {
thing.remove(i);
} else {
i++;
}
}
}