删除ArrayList中的对象Java

问题描述:

这里我创建了一个删除方法,它将搜索Object数组并删除所选对象。删除ArrayList中的对象Java

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

我不能换我周围为什么在第一while循环(gi != dogListArray[i])抛出一个错误头:“不兼容的操作数类型DogList和DogItem”

任何帮助将是美好的。 代码很长,所以如果你想看到任何部分,我将编辑并显示需要什么。

+0

不应该是'gi [i]!= dogListArray [i]'? – Checkmate

+3

看起来像你的数组'dogListArray'包含'DogItem'类的对象。当你试图将它与DogList进行比较时,它会返回一个错误。 –

+1

如果您分享课程的完整实施,这将会很有帮助。 –

我假设dogListArrayDogItem[],使得dogListArray[i] a DogItem。我假设gi的意思是DogItem而不是DogList

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