gpt4 book ai didi

java - 如何在java中设置搜索方法

转载 作者:行者123 更新时间:2023-12-02 19:18:40 25 4
gpt4 key购买 nike

我是 Java 新手,我正在尝试创建一个名为 searchListBySurName 的方法,该方法接受 String 参数并返回 true 或 false,具体取决于具有相应姓氏的名称是否存在。

这是我到目前为止所拥有的:


public boolean searchListBySurName(String SurName)

{
if (list.contains(SurName)) {

return true;
} else {
return false;
}
}

这是我用来测试该方法的测试数据:

public void testSearchListBySurName() {
r.addName(new Name("Joe", "Bloggs"));
r.addName(new Name("Fred", "Jones"));

assertTrue("First search should find Jones, i.e. return true", r.searchListBySurName(new String("Jones")));

r = new Register();
r.addName(new Name("Joe", "Bloggs"));
r.addName(new Name("Fred", "Wayne"));

assertFalse("Second search should not find Jones, i.e. return false", r.searchListBySurName(new String("Jones")));
}

但是,测试总是显示失败。我犯了什么错误以及如何修复它?

最佳答案

您的列表是Name,但您搜索String,因此它不起作用。最直接的方法是使用 for 循环:

public boolean searchListBySurname(String surname) {
for (Name name : list)
if (name.getSurname().equals(surname))
return true;

return false;
}

或者您可以使用 Java 8 流:

public boolean searchListBySurname(String surname) {
return list.stream().anyMatch(name -> name.getSurname().equals(surname));
}

附注还要注意方法和参数名称。

关于java - 如何在java中设置搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63349141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com