java - 从数组列表中删除时java中的当前修改异常

标签 java

  public void removeVehicle(String licenseNum){      

      for (Vehicle vehicle : vehicleLot){

    String flag = vehicle.getLicenseNumber().toString();
        if(flag.compareTo(licenseNum) == 0){
            int num = vehicleLot.indexOf(vehicle);

        vehicleLot.remove(num);
    }

我收到此异常,我正在尝试从数组列表中删除与上面的许可证号匹配的车辆。

我的数组列表是这样私有(private)的

 List<Vehicle> vehicleLot = new ArrayList<Vehicle>();

最佳答案

您不能从使用迭代器(for(element : list) 在幕后使用的)迭代的 ArrayList 中删除元素,除非您使用迭代器本身来删除项目。

您可以做的是使用已声明的迭代器或通过数字索引遍历列表来避免该问题。

例如

Iterator<Vehicle> iterator = vehicleLot.iterator();
while(iterator.hasNext())
{
  Vehicle vehicle = iterator.next();
  String flag = vehicle.getLicenseNumber().toString();
  if(flag.compareTo(licenseNum) == 0)
  {
    iterator.remove();
  }

}

关于java - 从数组列表中删除时java中的当前修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319590/

相关文章:

java - 使用EntityManager在derby DB中保留实体会产生java.sql.SQLIntegrityConstraintViolationException

java - Spring 靴 Jersey 错误

java - HIbernate: "Nested Transactions not supported"当所有事务正确提交时

Linux 和 Windows 中的 java.io.File 和路径

java - 声音不会播放两次

java - 需要有关如何延迟或在后台运行功能的帮助(Android 应用程序)

java - 将 java.util.date 与 java.sql.Time 合并

Java 桌面 API 无法使用网络路径?

java - 如何将图像绘制到 JPanel 或 JFrame?

java - 单击 JList 中的项目时如何切换它们?