2014-02-17 54 views
-1

我需要比較2個向量的元素,但它一直拋出異常。請幫助,我想知道我是否做了錯誤的比較,因爲向量使用方法。我需要比較2個向量的元素JAVA

for (int i=0; i <= vect.size(); i++) 
      { 
       if (i >0 && i <= vect.size()) 
       {  
       if(vect.get(i) == vect.get(i--)) //EXCEPTION HERE 
       { 
        vect2.add(vect.get(i)+ ""); 
       }else{vect2.add(vect.get(i++));} 

       }     
      } 

回答

1

第一個問題:

for (int i=0; i <= vect.size(); i++) 
       ↑ 

問題二,當你更改爲<因爲你仍然有vect.get(i++)會出現。

您需要小心使用索引,因爲數組是從零開始,和由陣列內部,索引之間運行備份Vector小號[0,大小-1]。

2

千萬不要在for-loop中更改i的值!

通過i+1通過i-1i++更換i--和適應上i您的情況,以正確的值的範圍。

+0

但是......我看到所有人都這麼做:for(int i = ...; i> = 0; --i){}。不要告訴我那*錯*。 – Durandal

+0

不,這是完美的。什麼不是做:'for for(int i = ...){i ++}'' –