2013-01-04 67 views
0

對於我的計算機科學類,我們應該採用一組對象{A,C,D,C,C,F,C,G}並設置某個特定對象的所有元素對象爲null。對象是C:{A,null,D,null,null,F,null,G} 然後我們應該把所有剩下的對象移動到數組的前面{A,D,F,G,null,null ,NULL,NULL} ... 到目前爲止,我試過,但我不能找到我的方法的問題:通過刪除某些對象來壓縮java中的一個數組

public static void compact (Object[] vec, Object item) { 

    int a=0; 
    for(int i=0; i < vec.length; i++) 
    { 
     if(vec[i]==item) 
     { 
      vec[i] = null; 
     } 
     else 
     { 
      vec[i]=vec[a]; 
      a++; 
     } 
    } 
    for(int b=a; b < vec.length-(a-1); b++) 
    { 
     vec[b]=null; 
    } 
} 

幫助嗎?

+5

是什麼問題?你到目前爲止做了哪些調試? –

+0

我想你想'vec [a] = vec [i]',而不是相反。 –

+0

你的名字命名很差。給它一個好名字,你可能會看到它爲什麼失敗。 –

回答

4
if(vec[i]==item) 

切勿使用==比較對象,請使用equals()(和,當你定義一個新類,照顧在以實際的方式實現equals()hashCode()

當然可能還有其他的問題,但既然你甚至沒有告訴它是什麼失敗,我不會太在意。

0

我想你想要equals()而不是==,除非測試爲null。您正在使用一個對象。

相關問題