У меня есть 2 дополнительных класса помимо основного (Person + Phonebook). Я добавляю объекты Person в ArrayList, которые я создал в своем классе Phonebook.Поиск значения в массиве объектов
Теперь я хочу внедрить метод в классе Phonebook, который примет строку (имя человека в телефонной книге) и вернет номер, если человек находится в телефонной книге. Я пробовал несколько вещей, например, пытаться вызвать метод getName() из объекта Person.
Это то, что я прямо сейчас:
Person класс:
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, чтобы знать, где логическая равенство было бы;) – SomeJavaGuy
Вы можете использовать карту вместо списка. Таким образом, вы можете искать человека без повторения в списке. Ключом карты будет имя человека и значение объекта Person. –