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/