这是否会导致不可预知的行为?java arraylist迭代
ArrayList<X> x = new ArrayList<>();
//x.add(new X())...
f:
for(int i = 0; i < x.size() -1;)
{
X y = x.get(i);
for(int j = i + 1; j < x.size();)
{
if(a) {
x.remove(j);
continue;
}
if(b) {
x.remove(i);
continue f;
}
j++;
}
i++;
}
什么是'a'和'b'? –
布尔值依赖于x.get(j)和x.get(i)的值;迭代没有迭代器,仍然是删除问题 –
每次检查'for's'条件时应该调用'x.size()',所以你应该没问题。 – Jon