如果元素的值小于一个特定的整数,如何在ArrayList中删除一个元素和之后的元素?



我有一个程序,我需要从数组列表中删除值,如果值小于10,则删除后面的值。

下面是一个例子:

原始数组列表:

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

Modified ArrayList:(如果value小于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;
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();
}
}
}

相关内容

  • 没有找到相关文章

最新更新