删除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”
任何帮助将是美好的。 代码很长,所以如果你想看到任何部分,我将编辑并显示需要什么。
答
我假设dogListArray
是DogItem[]
,使得dogListArray[i]
a DogItem
。我假设gi
的意思是DogItem
而不是DogList
?
在单独但仍相关的说明中,应使用equals
方法而不是==
或!=
来比较对象。请参阅here对此方面的解释。
不应该是'gi [i]!= dogListArray [i]'? – Checkmate
看起来像你的数组'dogListArray'包含'DogItem'类的对象。当你试图将它与DogList进行比较时,它会返回一个错误。 –
如果您分享课程的完整实施,这将会很有帮助。 –