Java 如何创建搜索方法来搜索与所有其他条目名称完全匹配的名称

Java 如何创建搜索方法来搜索与所有其他条目名称完全匹配的名称,java,Java,我不知道我问的问题是否对你清楚。因此,我试图创建一个方法,让我在电话簿类中搜索姓名,并找到所有同名的条目 //这是我在电话簿课上的方法 public String searchEntry(Entry e) { if (entrylist.contains(e)) { return e.getSurname(); } return null; } 然而,这种方法所采用的是允许搜索条目并查找其分机号 在我的entry类中,有三个参数传入构造函数 publ

我不知道我问的问题是否对你清楚。因此,我试图创建一个方法,让我在电话簿类中搜索姓名,并找到所有同名的条目

//这是我在电话簿课上的方法

public String searchEntry(Entry e) {
    if (entrylist.contains(e)) {
        return e.getSurname();
    }

    return null;

}
然而,这种方法所采用的是允许搜索条目并查找其分机号

在我的entry类中,有三个参数传入构造函数

public Entry(String surname, String initials, String extension) {
    this.setSurname(surname);
    this.setInitials(initials);
    this.setExtension(extension);
}

    ListDirectory ls = new ListDirectory();
    Entry e = new Entry("james", "K", "9023");
    ls.addEntry(e);
    System.out.println(ls.searchEntry(e));;

//this prints out james

我不知道如何查找保存在电话簿类中的姓名

我不确定我是否理解正确,但这个问题:

制作一个方法,让我在电话簿类中搜索姓名,并找到所有同名的条目

建议您查找多个条目(如果存在)

考虑创建一个方法,该方法返回条目项的集合,例如
列表
,并让列表(可能是
数组列表
)保存集合中具有匹配名称(仅姓氏?)的所有条目项

因此,方法签名可以如下所示:

public List<Entry> findAllMatches(String name) {
   List<Entry> entryList = new ArrayList<Entry>();

   // loop through entire collection, filling entryList

   return entryList; // this could be empty if no matches are found
} 
public List findAllMatches(字符串名称){
List entryList=new ArrayList();
//循环遍历整个集合,填充entryList
return entryList;//如果找不到匹配项,则可能为空
} 

如果我误解了您的问题,请澄清。

如果您想在列表中搜索子字符串或条件,您必须(除非您有更好的数据结构)查看每个条目并检查其是否匹配:

public Entry searchSubstring(String search) {
  for (Entry e : entrylist) {
    if (contains(e.getSurname(), search) || contains(e.getExtention(), search) || .. )
    {
      return e;
    }
  }
  return null; // nothing found
}

boolean contains(String haystack, String needle) {
  if (haystack == null)
    return false;

  return haystack.contains(needle);
}

除了返回e,您还可以执行
result.添加(e)
并返回匹配项列表。

谢谢。我使用数组来存储所有内容。所以我会调查的。再次感谢你