【发布时间】:2016-07-29 14:22:04
【问题描述】:
我正在尝试使用 for-each 循环在我的方法 findContactsByName 中搜索包含在 ArrayList 中的字符串,如果在联系人中找到该字符串,则返回联系人,如果未找到该字符串,则返回 null被退回。但是,在测试我的代码时,一直返回 null,这是我的代码:
import java.util.*;
public class Phonebook {
private String owner;
private ArrayList<Contact> contacts = new ArrayList<Contact>();
public void addContact(Contact contact) {
contacts.add(contact);
}
public void show() {
System.out.println(owner + "'s phonebook");
for (Contact contact : contacts) {
System.out.println(contact);
}
}
public Contact findContactByName(String name) {
for (Contact contact : contacts) {
if (contacts.contains(name)) {
return contact;
}
}
return null;
}
}
【问题讨论】:
-
尝试以下命名约定:
Contact称为Contact很容易混淆。变量名应该是contact。 -
考虑使用
HashMap,而不是自己遍历ArrayList -
在你增强的 for 循环中做 (Contact contact : contacts) 代替,它更容易阅读,同时也是一个正确的实现,不使用类的名称作为变量的名称..跨度>
-
请同时输入你的
Contactpojo 类的代码