JAVA ArrayList 无法通过 indexOf() 找到元素
JAVA ArrayList cant find element via indexOf()
我正在写一个简短的程序,但遇到了问题。
更多细节有问题。
我有功能
public CardStck from(Card card)
int pos = this.cardList.indexOf(card);
这个例子的卡片是 Card(value=5, color="D")- 正如你在调试屏幕上看到的
即使有那张卡片我在this.cardList 中搜索5(D)(钻石5卡)pos的值为-1(未找到)
谁能告诉我问题出在哪里?
在您的卡片 class 中,实现 "equals" 方法,如下所示:
@Override
public boolean equals(Object t){
if(!(t instanceof Card)){
return false;
}
Card c = (Card)t;
//Compare however you want, ie
return (c.getValue() == this.getValue()) & (c.getColor().equals(this.getColor());
}
您可能还想包括一些其他空检查或安全内容,例如确保颜色不为空等,但这是一般的想法。
我正在写一个简短的程序,但遇到了问题。
更多细节有问题。
我有功能
public CardStck from(Card card)
int pos = this.cardList.indexOf(card);
这个例子的卡片是 Card(value=5, color="D")- 正如你在调试屏幕上看到的 即使有那张卡片我在this.cardList 中搜索5(D)(钻石5卡)pos的值为-1(未找到)
谁能告诉我问题出在哪里?
在您的卡片 class 中,实现 "equals" 方法,如下所示:
@Override
public boolean equals(Object t){
if(!(t instanceof Card)){
return false;
}
Card c = (Card)t;
//Compare however you want, ie
return (c.getValue() == this.getValue()) & (c.getColor().equals(this.getColor());
}
您可能还想包括一些其他空检查或安全内容,例如确保颜色不为空等,但这是一般的想法。