0

私のコンピューター サイエンスのクラスでは、オブジェクト {A,C,D,C,C,F,C,G} の配列を取得し、特定のオブジェクトのすべての要素を null に設定することになっています。Object is C: {A,null,D,null,null,F,null,G} 次に、残りのすべてのオブジェクトを配列 {A,D,F,G,null,null, null、null} ...これまでのところ、これを試しましたが、メソッドの問題を見つけることができません:

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

助けてください?

4

2 に答える 2

4
if(vec[i]==item)

==オブジェクトの比較には決して使用しないでくださいequals()(また、新しいクラスを定義するときは、実装equals()hashCode()実用的な方法に注意してください)。

もちろん、他にも問題があるかもしれませんが、何が失敗しているのかさえ伝えていないので、あまり気にしません。

于 2013-01-04T20:25:22.767 に答える
0

null をテストしない限り、== ではなく equals() が必要だと思います。オブジェクトを使用しています。

于 2013-01-04T20:26:05.697 に答える