2016-09-25 87 views
-2

這裏我創建了一個刪除方法,它將搜索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

如果您分享課程的完整實施,這將會很有幫助。 –

回答

2

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

在單獨但仍相關的說明中,應使用equals方法而不是==!=來比較對象。請參閱here對此方面的解釋。