我有一个复杂对象的数组列表Box
。我需要将这些框中的特定元素移动到arrayList的最后一个位置,并移除原始元素,如图所示:
我的代码是这样的,但我得到了这个错误:ConcurrentModificationException
for (Box i : boxes) { //where boxes is the arrayList
if (i.mouseOver()) { //does the swapping I need if the mouse is over the box
Box copy=i;
boxes.remove(i); //these 3 lines are where I think the mistake is
boxes.add(copy);
}
}
一旦修改了框
(通过删除和/或添加元素),就不能继续对其进行迭代。可以避免这种情况的一种方法是,一旦移动要移动的框
,将中断
退出循环:
for (Box i : boxes) { //where boxes is the arrayList
if (i.mouseOver()) { //does the swapping I need if the mouse is over the box
// No need to create a new reference
boxes.remove(i);
boxes.add(i);
break;
}
}
在for each循环中,不能删除条目。
for (int i = 0; i < boxes.size(); i++) {
if (boxes.get(i).mouseOver())
boxes.add(boxes.remove(i));
}
如果java.util.是您得到的错误,请尝试不要使用高级的循环,而只使用常规的循环。在您的代码中,我还看到您试图从列表中删除带有实际对象的元素。在Arraylist中,您只能通过索引删除,而不是元素。
我认为下面应该有用。
for (int i = 0; i < boxes.size(); i++) {
if (boxes.get(i).mouseOver()) {
boxes.add(boxes.remove(i));
}
}
问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?
我有一个包含以下元素的ArrayList: 我要将移到之后,以以下顺序: 我使用此代码: 上述代码的结果如下: 移动一个又一个元素的最佳方法是什么?
问题内容: 下面有一个for循环代码。我通过调用一个自定义显示函数发现aBook arrayList对象仅添加了最后一个类对象三次。为什么会这样呢? 这是我的LiFiAddressBook类 } 问题答案: 由于使用static关键字,每次 调用构造函数时,旧值都会被新值覆盖,并且在打印列表中的元素时,LiFiAddressBook类的对象变量将指向相同的对象。因此打印相似的对象。 需要明确的是,
问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?
给定输入的XML数据: 因此,我期望通过以下条件输出数据:“for-eachTime_Off_Type_GroupTime_Off_Entry_IDRequest_or_CorrectionTime_Off_Type_Group” 输出示例:
当新项目添加到视图中时,我试图使我的listview移动到最后一个项目。有了textview,我可以通过这样做来实现这一点 但对于带有适配器的listview,我似乎无法找到调用的方法。我的适配器设置