无法解码null java.util.ConcurrentModificationException

时间:2013-05-31 11:27:38

标签: java exception

我遇到了null java.util.ConcurrentModificationException的问题。 我在main函数中编写了所有内容,这是错误弹出的代码部分。请解释一下导致此错误的原因。

    import java.util.*;
public class test
{

    public static void main(String[] args)
    {
        try{
            int l1,k1,l,k,temp11,temp22,complist,nodes,temp1,temp2,temp3,count,temp,re1,re2,re3,x,y,mul,ad,sche_nodes;
            l=0;k=0;temp=0;temp1=0;temp2=0;temp3=0;count=0;l1=0;k1=0;complist=0;nodes=9;re1=5;re2=4;re3=0;mul=5;ad=4;
            int parent[][]=new int[nodes][3];   
            int parent1[][]=new int[nodes][3];
            double mult[][]=new double[mul][2];
            double add[][]=new double[ad][2];
            List<Integer> a1 = new ArrayList<Integer>();
            Iterator it = a1.iterator();
            Iterator it1= a1.iterator();
            Iterator it2 = a1.iterator();
            Iterator it3 = a1.iterator();
            System.out.println("Scheduling begins");
     parent[0][0]=1;parent[0][1]=0;parent[0][2]=0;
     parent[1][0]=2;parent[1][1]=0;parent[1][2]=0;
     parent[2][0]=3;parent[2][1]=0;parent[2][2]=0;
     parent[3][0]=6;parent[3][1]=0;parent[3][2]=0;
     parent[4][0]=8;parent[4][1]=0;parent[4][2]=0;
     parent[5][0]=4;parent[5][1]=1;parent[5][2]=2;
     parent[6][0]=5;parent[6][1]=3;parent[6][2]=4;
     parent[7][0]=7;parent[7][1]=5;parent[7][2]=6;
     parent[8][0]=9;parent[8][1]=7;parent[8][2]=8;
     for(x=0;x<nodes;x++)
     {
         for(y=0;y<3;y++)
         {
             parent1[x][y]=parent[x][y];
         }
     }

     for(x=0;x<nodes;x++)
     {
         for(y=0;y<3;y++)
         {
             System.out.print(parent[x][y]+" ");
         }
         System.out.println("");
     }

     mult[0][0]=8;mult[1][0]=6;mult[2][0]=3;mult[3][0]=2;mult[4][0]=1;  
     add[0][0]=9;add[1][0]=7;add[2][0]=5;add[3][0]=4;

     while(complist!=nodes)
     {
         while(re1!=0|| re2!=0 || re3!=0)
         {
             if(l1!=(mul+1) && re1!=0)
             {
                 temp11=(int)mult[l1][0];
                 for(x=0;x<nodes;x++)
                 {
                     if(parent[x][0]==temp11)
                         l=x;
                 }
             }
             if(parent[l][2]==0 && parent[l][1]==0 && l1!=(mul+1) && re1!=0)
             {
                 a1.add((int)mult[l1][0]);
                 System.out.println("mult1 "+a1.size());
                 complist++;
                 re1--;
                 l1++;
             }
             else if(((parent[l][2]!=0 && parent[l][1]!=0) || (parent[l][2]==0 && parent[l][1]!=0)|| (parent[l][2]!=0 && parent[l][1]==0 )) && l1!=(mul+1) && re1!=0)
             {
                 while(it.hasNext() )
                 {
                     Integer value=(Integer)it.next();
                     temp3=0;temp1=0;temp2=0;
                     temp=(mul+ad)*count;
                     if(temp3<temp)
                     {
                         if(parent[l][2]==value)
                         {
                             temp1=1;
                             temp3++;
                         }
                         else
                             temp3++;
                         if(parent[l][1]==value)
                         {
                             temp2=1;
                         }

                     }  
                 }
                 if(temp1==1 && temp2==1)
                 {
                     a1.add((int)mult[l1][0]);
                     System.out.println("mult2 "+a1.size());
                     complist++;
                     re1--;
                     l1++;
                 }
                 else
                     l1++;
             }
             else if(l1==(mul+1) && re1!=0)
             {
                 while(re1!=0)
                 {
                     a1.add(-1);
                     System.out.println("mult3 "+a1.size());
                     re1--;
                 }
             }
             System.out.println("End of Multiplier for "+l1+" iteration");

             if(k1!=(ad+1) && re2!=0)
             {
                 temp22=(int)add[k1][0];
                 for(y=0;y<nodes;y++)
                 {
                     if(parent1[y][0]==temp22)
                         k=y;
                 }
                 System.out.println("End of for in addition");
             }

             if( parent1[k][2]==0 && parent1[k][1]==0 &&k1!=(ad+1) && re2!=0)
             {
                 System.out.println("Begin of if in addition");
                 a1.add((int)add[k1][0]);
                 System.out.println("addn1  "+a1.size());
                 complist++;
                 re2--;
                 k1++;
             }

             else if(((parent1[k][2]!=0 && parent1[k][1]!=0) || (parent1[k][2]==0 && parent1[k][1]!=0)|| (parent1[k][2]!=0 && parent1[k][1]==0 )) && k1!=(ad+1) && re2!=0)
             {
                 while(it2.hasNext() )
                 {
                     Integer value=(Integer)it2.next();
                     temp3=0;temp1=0;temp2=0;
                     temp=(mul+ad)*count;
                     if(temp3<temp)
                     {
                         if(parent1[k][2]==value)
                         {
                             temp1=1;
                             temp3++;
                         }
                         else
                             temp3++;
                         if(parent1[k][1]==value)
                             temp2=1;
                     }  
                 }
                 if(temp1==1 && temp2==1)
                 {
                     a1.add((int)add[k1][0]);
                     System.out.println("addn2 "+a1.size());
                     complist++;
                     re2--;
                     k1++;
                 }
                 else
                     k1++;
             }
             else if(k1==(ad+1) && re2!=0)
             {
                 while(re2!=0)
                 {
                     a1.add(-2);
                     System.out.println("addn3  "+a1.size());
                     re2--;
                 }
             }
             System.out.println("End of Adder for"+k1+" iteration");
         }
         if(re1==0 && re2==0 && re3==0)
         {
             re1=5;
             re2=4;
             re3=0;
             count++;
             l1=0;k1=0;
         }
     }
     System.out.println("mult+add "+a1.size());
     sche_nodes=(a1.size()/(mul+ad));
     System.out.println(" "+sche_nodes);
     int sche[][]=new int[sche_nodes][mul+ad]; 

     for(x=0;x<sche_nodes;x++)
     {
         for(y=0;y<(mul+ad);y++)
         {
             Integer value=(Integer)it1.next();
             sche[x][y]=value;
         }
     }
     System.out.println("Scheduled Array");

     for(x=0;x<sche_nodes;x++)
     {
         for(y=0;y<(mul+ad);y++)
         {
             System.out.println(sche[x][y]+" ");
         }
     }
  }
    catch (Exception e){
        System.err.println("Error: " + e.getMessage()+e);
    }
}

}

0 个答案:

没有答案