Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在arrayList中插入值时发生java.util.ConcurrentModificationException_Java - Fatal编程技术网

在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); 
   }