java - Java 从一个 ArrayList 中删除并移动到另一个
问题描述
我正在尝试将一个类从数组列表移动到另一个相同类型但与不同类相关联的类。我这样做的原因是车辆正在从一个类(仓库)移动到另一个类。我想复制它。但是,我发现这样做很难。
这是我的代码:
if (depotSelection.equals("Lpool")) {
Vehicle v = depots.get(depotNo).getVehiclebyReg(vehicleSelection);
depots.get(0).makeVehicle(v);
depots.get(depotNo).removeByVehicleReg(vehicleSelection);
exit = true;
break;
}
if (depotSelection.equals("Leeds")) {
Vehicle v = depots.get(depotNo).getVehiclebyReg(vehicleSelection);
depots.get(1).makeVehicle(v);
depots.get(depotNo).removeByVehicleReg(vehicleSelection);
exit = true;
break;
}
if (depotSelection.equals("MChester")) {
Vehicle v = depots.get(depotNo).getVehiclebyReg(vehicleSelection);
depots.get(2).makeVehicle(v);
depots.get(depotNo).removeByVehicleReg(vehicleSelection);
exit = true;
break;
}
这是我用来删除它的代码:
public void removeByVehicleReg(String regNo) {
vehicles.removeIf(v -> v.getRegNo().equals(regNo));
}
这是我得到的当前异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1042)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:996)
at DepotSystem.reAssignVehicles(DepotSystem.java:400)
at DepotSystem.depotMenu(DepotSystem.java:166)
at DepotSystem.logOn(DepotSystem.java:123)
at DepotSystem.entryMenu(DepotSystem.java:89)
at Entry.main(Entry.java:10)
解决方案
推荐阅读
- javascript - 如果在 Click 事件 Javascript 中声明
- oracle - CURRVAL 和 NEXTVAL 默认值如何在 Oracle 11 中生成“ORA-0094: column not allowed here”
- typescript - 如何使用 TypeScript 重用类构造函数参数作为文字字符串?
- python - 基本 Python 练习:给定一个整数列表,如果有重复,则放置一个“*”
- javascript - 循环遍历单个元素 - Laravel
- python-3.x - Keras中的卷积自动编码器解码器错误
- java - 为什么这个函数调用中有 NullPointerException?
- pandas - 如何在 csv 文件中添加分隔符
- go - 我使用 goroutine 进行 parral 的内存激增,最终 oom
- android - Android LiveData 以陈旧的发射触发。. . 只有某些时候 。. . 房间数据库更新后