java - 通过删除某些对象来压缩java中的数组

标签 java arrays null

对于我的计算机科学课,我们应该采用对象数组 {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} 的前面...
到目前为止,我尝试了这个,但我的方法找不到问题:

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

请帮忙?

最佳答案

if(vec[i]==item)

切勿使用 ==要比较对象,请使用 equals() (并且,当您定义一个新类时,请注意以实用的方式实现 equals()hashCode())

当然可能还有其他问题,但是由于您甚至没有说出失败的原因,所以我不会太在意。

关于java - 通过删除某些对象来压缩java中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164385/

相关文章:

javascript - 以特定格式重新排列Javascript数组

java - 多个线程可以同时将数据写入文件吗?

java - 如何重定向到在 Play Framework 中具有post方法的Action

java - 绑定(bind)线程运行时间

java - RSA 数字签名失败

c - 使用无循环递归在c中编写程序以获取所需的输出

javascript - 删除数组中的重复元素

sql-server - SQL 中的 NULL 和编程语言中的 null 之间的区别

javascript - getElementById为Canvas元素返回null

JSON 字段设置为 null vs 字段不存在