java.util.ConcurrentModificationException:“不允许检测到并发修改对象的方法可能会抛出此异常。”

知道为什么我的set方法会给出此异常吗?

private ArrayList<Double> voltagesList = new ArrayList<Double>();
private ArrayList<String> devicesList = new ArrayList<String>();

public void setVoltage(String device, double voltage) {
    for(String d: devicesList){
            if(d.equals(device)){
                voltagesList.set(devicesList.indexOf(device), voltage);
        }
            else{
                voltagesList.add(voltage);
                devicesList.add(device);
            }
    }
}

最佳答案

您应该使用地图,而不要使用一对列表。

private final Map<String, Double> deviceVoltageMap = new HashMap<>();

public void setVoltage(String device, double voltage) {
    deviceVoltageMap.put(device, voltage);
}

关于java - ArrayList迭代给出异常java.util.ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19963637/

10-09 06:07
查看更多