在arrayList中插入值时发生java.util.ConcurrentModificationException
代码:在arrayList中插入值时发生java.util.ConcurrentModificationException,java,Java,代码: public void insert(){ for(ScheduleMaster v:ArrayList 1){ arrayList1.添加(mm.i,v); } Listtemp1=新的ArrayList(); temp1=arrayList1; System.out.println(“即将插入”); Iteratoritr=temp1.iterator(); while(itr.hasNext()){ ScheduleMaster s=itr.next(); s
public void insert(){
for(ScheduleMaster v:ArrayList 1){
arrayList1.添加(mm.i,v);
}
Listtemp1=新的ArrayList();
temp1=arrayList1;
System.out.println(“即将插入”);
Iteratoritr=temp1.iterator();
while(itr.hasNext()){
ScheduleMaster s=itr.next();
s、 设置服务代码(服务代码);
s、 setServiceName(服务名称);
s、 设置vessalCode(vessalCode);
s、 setVessalName(vessalName);
s、 航程(航程);
s、 设置端口代码(端口代码);
s、 setPortName(portName);
s、 setTerminalCode(终端代码);
s、 setTerminalName(终端名称);
s、 setEta(eta);
s、 设定时间(etaTimes);
s、 etd(etd);
s、 设置ETD时间(ETD时间);
s、 受挫(束缚);
s、 setAta(ata);
s、 setAtaTimes(ataTimes);
s、 setAtd(atd);
s、 设置atdTimes(atdTimes);
arrayList1.添加(s);
}
}
temp1
和arrayList1
是对同一对象的引用。您不能在对象上迭代并在迭代时更改它
因此,您必须克隆对象,然后可以迭代克隆并更改原始对象
public void insert(){
for(ScheduleMaster v:arrayList1){
arrayList1.add(mm.i, v);
}
List<ScheduleMaster>temp1=new ArrayList<ScheduleMaster>();
temp1=arrayList1;
System.out.println("Coming Insert");
Iterator<ScheduleMaster>itr=temp1.iterator();
while(itr.hasNext()){
ScheduleMaster s=itr.next();
s.setServiceCode(serviceCode);
s.setServiceName(serviceName);
s.setVessalCode(vessalCode);
s.setVessalName(vessalName);
s.setVoyage(voyage);
s.setPortCode(portCode);
s.setPortName(portName);
s.setTerminalCode(terminalCode);
s.setTerminalName(terminalName);
s.setEta(eta);
s.setEtaTimes(etaTimes);
s.setEtd(etd);
s.setEtdTimes(etdTimes);
s.setBound(bound);
s.setAta(ata);
s.setAtaTimes(ataTimes);
s.setAtd(atd);
s.setAtdTimes(atdTimes);
arrayList1.add(s);
}
}
listemp1=newarraylist();
for(ScheduleMaster v:ArrayList 1){
arrayList1.添加(mm.i,v);
步骤1.添加(mm.i,v);
}
这不是一个定义良好的问题,只有stacktrace和代码片段。而且这似乎是一个重复的问题。
public void insert(){
for(ScheduleMaster v:arrayList1){
arrayList1.add(mm.i, v);
}
List<ScheduleMaster>temp1=new ArrayList<ScheduleMaster>();
temp1=arrayList1;
System.out.println("Coming Insert");
Iterator<ScheduleMaster>itr=temp1.iterator();
while(itr.hasNext()){
ScheduleMaster s=itr.next();
s.setServiceCode(serviceCode);
s.setServiceName(serviceName);
s.setVessalCode(vessalCode);
s.setVessalName(vessalName);
s.setVoyage(voyage);
s.setPortCode(portCode);
s.setPortName(portName);
s.setTerminalCode(terminalCode);
s.setTerminalName(terminalName);
s.setEta(eta);
s.setEtaTimes(etaTimes);
s.setEtd(etd);
s.setEtdTimes(etdTimes);
s.setBound(bound);
s.setAta(ata);
s.setAtaTimes(ataTimes);
s.setAtd(atd);
s.setAtdTimes(atdTimes);
arrayList1.add(s);
}
}
List<ScheduleMaster>temp1=new ArrayList<ScheduleMaster>();
for(ScheduleMaster v:arrayList1){
arrayList1.add(mm.i, v);
temp1.add(mm.i, v);
}