Я неопытный Java-программист в своем уме. Я пытаюсь найти ArrayList контактов по имени. Если существует только один контакт, который соответствует этому имени, он работает, но я хочу сделать так, чтобы, если существует более одного контакта, которые соответствуют одному и тому же имени, все объекты контактов были бы возвращены.
Я хочускажи, что я попробовал все, что "я" могу придумать, я даже не могу вспомнить, что я пытался. Недавно я попытался вернуть ArrayList объектов, которые соответствуют имени, но, кажется, добавляют только один объект в список. Я просто запутался в этом вопросе.
Начальная попытка (возвращает один объект):
public Contact getContactByName(String x) {
for (Contact c : contacts) {
if (c.getName().equalsIgnoreCase(x)) {
return (c);
}
}
return null;
}
Другая попытка (возвращает только один объект в списке):
public ArrayList<Contact> getContactByName(String x) {
ArrayList<Contact> temp = new ArrayList<>();
for (Contact c:contacts) {
if (c.getName().equalsIgnoreCase(x)) {
temp.add(c);
}
}
return temp;
}
Я предполагаю, что return (c) вернет контакт за итерацию цикла, если он соответствует условиям if. Я предполагаю, что упустил что-то очень фундаментальное. То, что я хотел бы видеть возвращенным в GUI, это:
Джо Смит 555-555-5555 321 Уотер-стрит
Джо Смит 123-123-1234 456 E Street