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

我认为你想要 equals() 而不是 == 除非测试 null。您正在使用一个对象。

于 2013-01-04T20:26:05.697 回答