删除范围内的List中的元素

时间:2013-10-12 03:29:24

标签: java list

此方法应接受列表,元素,最小值(包括)和最大值(不包括)。然后它使用相同的元素删除范围内的所有元素。

例如,对于列表(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++;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

你可以这样做

list.subList(fromIndex, toIndex).removeAll(Arrays.asList(element));