2011-07-18 10 views
0

を見つけることができません私はこのコードを持っている:エラーコンパイル後のコードを-できるシンボル

static ArrayList<Integer> output_list = new ArrayList<Integer>(); 
static ArrayList<Integer> pair_list = new ArrayList<Integer>(); 

    for (Iterator it=output_list.iterator(); it.hasNext();) 
     { 
      int pair_test = (int)output_list.next(); 
      for (int i=0; i<pair_list.length; i++) 
      { 

       if(!pair_list[i]==0) 
       { 
        if (pair_list[i]==pair_test[i]) 
        { 
         boolean check; 
         check=true; 
        } 
       } 
      } 
     } 

をしかし、私は、コンパイル中にエラーが「シンボルを見つけることができない」です。

symbol : variable length 
location: class java.util.ArrayList<java.lang.Integer> 
         for (int i=0; i<pair_list.length; i++) 
               ^
Prior.java:79: array required, but java.util.ArrayList<java.lang.Integer> found 
           if(!pair_list[i]==0) 
              ^
Prior.java:79: incomparable types: boolean and int 
           if(!pair_list[i]==0) 
               ^
Prior.java:81: array required, but java.util.ArrayList<java.lang.Integer> found 
             if (pair_list[i]==pair_test[i]) 
                ^
Prior.java:81: array required, but int found 
             if (pair_list[i]==pair_test[i]) 
                   ^

誰でもこのエラーが発生します。

答えて

5

pair_list.lengthの代わりにpair_list.size()を使用してください。 pair_listは配列ではないリストです。私はthe for-each loop構文も見てみることをお勧めします。 このpair_list[i]もコンパイルされません。配列の構文です。代わりにpair_list.get(i)を使用してください。

+0

のような内側のループを書き換えることができるものoutput_list.nextについて()!? – Roubie

+0

それは大丈夫ですが、実際にはそれぞれのループはまったく同じです – zacheusz

1

zacheuszは、すでに述べたように、このコード

  • 上のいくつかの作業があります、リストは配列ではありません、私はそれがリストに滞在する方が良いと思いますが、それはそれは.LENGTHが.size()なり、[i]になることを意味意味
  • if(!pair_list[i]==0)になる必要があります... .get(i)
  • あなたはint pair_test = (int)output_list.next();定義し、まだあなたはpair_test[i]は、代が間違っていると言うif(!(pair_list[i]==0))
012最初の反復として私たちを与える

:今

static List<Integer> output_list = new ArrayList<Integer>(); 
static List<Integer> pair_list = new ArrayList<Integer>(); 

for (Integer pair_test: output_list) { 
    for (int i=0; i<pair_list.size(); i++) { 
      if(!(pair_list.get(i)==0)) { 
       // i suppose that this is what you mean 
       if (pair_list.get(i)==pair_test) { 
        boolean check; 
        check=true; 
        // this is pretty useless as it lives very locally and does 
        // absolutely nothing anywhere else in the program.... 
       } 
      } 
     } 
    } 
} 

は、おそらくあなたは偉大

for (Integer pair_list_element : pair_list) { 
    if ((pair_list_element != 0) && (pair_list_element==pair_test)) { 
     boolean check = true; 
     // and then probably, because your condition was satisfied 
     do_something_useful(); 
     // and get out 
     break; 
    } 
}