我正在尝试创建一个方法,如果两个参数(用户输入)在arrayList中,则该方法返回true。当我的代码运行时,它应该为true时总是返回false
public boolean containsItem(String targetTitle, String targetAuthor){
boolean result= false;
for (MediaItem contains : itemList) {
if(contains.getTitle().equals(targetTitle) && contains.getAuthor().equals(targetAuthor)) {
result = true;
}else{
result = false;
}
}
return result;
}
我需要两个单独的if语句或循环吗?我不确定为什么它总是返回false。我也尝试过if(contains.equals(targetTitle) && contains.equals(targetAuthor)) {
答案 0 :(得分:2)
您不需要result = false
部分,如果您发现有此刻,只需保持真实即可。同样,为了更快,当您找到true时:只需停止即可,无需继续,因此可以使用break
停止循环,也可以直接使用return
:
public boolean containsItem(String targetTitle, String targetAuthor){
for (MediaItem contains : itemList) {
if(contains.getTitle().equals(targetTitle) && contains.getAuthor().equals(targetAuthor)) {
return true;
}
}
return false;
}
答案 1 :(得分:0)
display:table;
不确定getTitle()在这里的含义,是否等于equalsIgnoreCase()取决于您,但这应该可行。