このメソッドは、リスト、要素、最小値 (含む)、および最大値 (含まない) を受け入れることになっています。次に、同じ要素を持つ範囲内のすべての要素を削除します。
たとえば、リスト (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++;
}
}
}