【发布时间】:2017-01-10 13:18:06
【问题描述】:
除了主要课程(人 + 电话簿)之外,我还有 2 个额外的课程。我正在将 Person 对象添加到我在 Phonebook 类中创建的 ArrayList 中。
现在我想在我的电话簿类中实现一个方法,该方法将接收一个字符串(电话簿中的人的姓名),如果该人在电话簿中,则返回该号码。我尝试了几种方法,例如尝试从 Person 对象调用 getName() 方法。
这就是我现在拥有的:
人物类:
public class Person {
private String name;
private String number;
public Person(String name, String number) {
this.name = name;
this.number = number;
}
public String getName() {
return this.name;
}
public String getNumber() {
return this.number;
}
public void changeNumber(String newNumber) {
this.number = newNumber;
}
public String toString() {
return getName() + " " + "number: " + getNumber();
}
}
电话簿类:
import java.util.ArrayList;
public class Phonebook {
private ArrayList<Person> person;
public Phonebook() {
this.person = new ArrayList<Person>();
}
public void add(String name, String number) {
Person newPerson = new Person(name, number);
person.add(newPerson);
}
public void printAll() {
for (Person prs : person) {
System.out.println(prs);
}
}
public String searchNumber(String name) {
if (person.contains(name)) {
return person.toString();
}
return "number not know";
}
}
【问题讨论】:
-
好吧,你不能只比较
Person和String并期望 java 知道逻辑相等的位置;) -
您可以使用地图而不是列表。这样您就可以在不遍历列表的情况下搜索人员。地图的键是人员的姓名和人员对象的值。
标签: java string arraylist methods