从arraylist Java中删除对象

从arraylist Java中删除对象,java,Java,这里我创建了一个delete方法,它将搜索对象数组并删除所选对象 public class DogList { private int numItems; private DogItem[] dogListArray; private int position; private String name; DogList () { numItems=0; position = 0; dogListArray

这里我创建了一个delete方法,它将搜索对象数组并删除所选对象

public class DogList {
    private int numItems;
    private DogItem[] dogListArray;
    private int position;
    private String name;

    DogList () {
        numItems=0;
        position = 0;
        dogListArray = new DogItem[20]; 
    }

    DogList(String name) {
        this.name = name; 
    }

    public void deleteItem(DogList gi) {
        int i = 0; 
        while( (i < numItems) && (gi != dogListArray[i]) ) {
            i++; 
        }

        if(i == numItems) {
            // Throw exception if there is not matching Item
            throw new NoSuchElementException("That item does not exists"); 
        }
        int pos = i;
        while(pos < numItems -1 ) {
            dogListArray[pos] = dogListArray[pos + 1]; 
            pos++; 
        }
        numItems --; 
    }
公共类狗名单{
私有内部网络;
私有DogItem[]dogListArray;
私人职位;
私有字符串名称;
狗名单(){
numItems=0;
位置=0;
dogListArray=新的DogItem[20];
}
狗列表(字符串名称){
this.name=名称;
}
公共无效删除项(狗列表gi){
int i=0;
而((i
我不明白为什么在第一个while循环中,
(gi!=dogListArray[I])
抛出一个错误:“不兼容的操作数类型DogList和DogItem”

任何帮助都会很好。
代码相当长,因此如果您想查看任何部分,我都会编辑并显示所需内容。

我假设
dogListArray
是一个
DogItem[]
,使
dogListArray[i]
成为
DogItem
。我假设
gi
也意味着是一个
DogItem
而不是
DogItem


在一个单独但仍然相关的注释中,您应该使用
equals
方法,而不是
=
!=
,来比较对象。请参阅此方面的说明。

是否应该是
gi[i]!=dogListArray[i]
?看起来您的数组
dogListArray
包含
DogItem
类的对象。当您试图将其与
DogList
进行比较时,它返回一个错误。如果您共享类的完整实现,这将非常有用。您可能还应该使用
equals
方法来比较对象。如果您使用
==
!=
您将比较参考文献。有关详细信息,请参阅。将DogList更改为DogItem修复了错误@Darshan Mehta。当您说使用equals方法@Bill the Lizard时,您在哪里暗示我使用它?我猜用类似的东西替换拳头。
while(!=gi.equal(dogListArray[i])
??