#java #methods #chaining
#Ява #методы #сцепление
Вопрос:
передумал, нашел решение, спасибо
Комментарии:
1. Из вашего описания не ясно, какую структуру содержит список? Это какой-то класс людей с именем и фамилией? Или что? Если вы повторяете список regst, то regst.getName(i).getFirstName() не имеет никакого смысла. Пожалуйста, опишите, что в списке?
Ответ №1:
Вам не нужно реализовывать какую-либо итерационную логику, поскольку она уже есть в ArrayList. Просто получите список из реестра
Listlt;Namegt; list = register.getList(); // you need a getter for this
Затем просто повторите список и верните список необходимых имен:
public Listlt;Namegt; findNames(Listlt;Namegt; list) { Listlt;Namegt; result = new ArrayListlt;gt;(); for (Name name : list) { if (name.getFirstName().contains("a") || name.getFirstName().contains("e")) { result.add(name); } } return result; }
Или использовать потоковый API:
public static Listlt;Namegt; findNames(Listlt;Namegt; list) { return list.stream() .filter(name -gt; name.getFirstName().contains("a") || name.getFirstName().contains("e")) .collect(Collectors.toList()); }
Если вам нужно получить первую букву этого имени, вы можете реализовать такой метод в классе Name:
public String getInitials() { return firstName.charAt(0) "." familyName.charAt(0) "."; }