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/

相关文章:

python - 一维数组到二维数组的 Numpy 列表

MySQL(+),什么意思?

java - 我有问题,我的代码没有打印任何内容

javascript - 如何在原型(prototype)中运行数组中的函数对象

java - 从对象数组中的 HashMap 对象创建指针

mysql - SQL/MySQL NOT NULL vs NOT EMPTY

java - 是否可以在 UML 中显示对空对象的引用?

java - 这是正常的 Java 正则表达式行为吗?

java - 针对 Oracle WCC 10G 服务器的 RIDC 更新失败,并显示创建日期无效错误消息

java - 单击另一个选项卡的按钮后如何执行包含在一个选项卡中的try-catch-Blackberry