如果元素的值小于特定整数,如何删除 ArrayList 中的元素及其之后的元素?

How to remove an element and the element after that in an ArrayList if the value of the element is less than a specific integer?

我有这个程序,如果该值小于 10,我需要从 ArrayList 和之后的值中删除值。

举个例子:

原始数组列表:

[20, 40, 15, 4, 25, 50, 45]

修改后的ArrayList:(如果值小于10)

[20, 40, 15, 50, 45] - (去掉了 4 和 25 因为 4 小于 10)

我制作了一个删除小于 10 的值的程序,但我也不知道如何删除第二个值。

我尝试创建一个变量布尔重启,如果 for-each 循环删除小于 10 的值,则该变量设置为 true。但我被卡住了。

这是我的代码:

Scanner sc = new Scanner(System.in);

    int numberOfMeasurements = sc.nextInt();
    boolean restart = false;

    ArrayList<Integer> measurements = new ArrayList<Integer>();

    for(int i = 0; i < numberOfMeasurements; i++) { 
        measurements.add(sc.nextInt());
    }

    ArrayList<Integer> measurementsTwo = new ArrayList<>();
    for (int i : measurements) {
        if (i > 10) {
            measurementsTwo.add(i);
            restart = true;
        }
    }
    measurements = measurementsTwo;

    System.out.println(measurements);

如果描述不准确,请直接说出来,我会尽力澄清我的问题。

一个好的旧迭代器应该做的:

for (Iterator<Integer> it = measurements.iterator(); it.hasNext();) {
    if (it.next() < 10) {
        it.remove();
        if (it.hasNext()) { // ensures no failure if `it` was at last element
            it.next();
            it.remove();
        }
    }
}