对于我的计算机科学课,我们应该采用对象数组 {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/