Как удалить элемент и элемент после этого в списке массивов, если значение элемента меньше определенного целого числа?

#java #arraylist

Вопрос:

У меня есть эта программа, в которой мне нужно удалить значение из списка массивов и значение после этого, если значение меньше 10.

Вот пример:

Исходный список массивов:

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

Измененный список массивов: (если значение меньше 10)

[20, 40, 15, 50, 45] — (Удалены 4 и 25, потому что 4 меньше 10)

Я создал программу, которая удаляет значение, меньшее 10, но я не могу понять, как удалить и второе значение.

Я попытался создать переменную логического перезапуска, которая имеет значение true, если цикл for-each удаляет значение, меньшее 10. Но я застрял.

Вот мой код:

 Scanner sc = new Scanner(System.in);   int numberOfMeasurements = sc.nextInt();  boolean restart = false;   ArrayListlt;Integergt; measurements = new ArrayListlt;Integergt;();   for(int i = 0; i lt; numberOfMeasurements; i  ) {   measurements.add(sc.nextInt());  }   ArrayListlt;Integergt; measurementsTwo = new ArrayListlt;gt;();  for (int i : measurements) {  if (i gt; 10) {  measurementsTwo.add(i);  restart = true;  }  }  measurements = measurementsTwo;   System.out.println(measurements);  

Если описание неточное, просто скажите это, и я постараюсь прояснить свою проблему.

Ответ №1:

Старый добрый итератор должен делать:

 for (Iteratorlt;Integergt; it = measurements.iterator(); it.hasNext();) {  if (it.next() lt; 10) {  it.remove();  if (it.hasNext()) { // ensures no failure if `it` was at last element  it.next();  it.remove();  }  } }