Я пытался превратить этуJava собирает с примером выражения лямбды
String r = "";
for (Persona p : list) {
r += p.lastName;
}
Для stream().filter.collect()
формы, но я хочу знать, как писать collect
с лямбдой-выражение (не ссылки метода). Я не мог найти хороший пример.
Это то, что у меня есть
class B {
public static void main(String ... args) {
List<Person> p = Arrays.asList(
new Person("John", "Wilson"),
new Person("Scott", "Anderson"),
new Person("Bruce", "Kent"));
String r;
String s = p.stream()
.filter(p -> p.lastName.equals("kent"))
.collect((r, p) -> r += p.lastName);/// ?????
}
}
class Person {
String name;
String lastName;
public Person(String name, String lastName) {
this.name = name;
this.lastName = lastName;
}
}
Все примеры, которые я нахожу используют ссылки метод, тогда как я думаю должна быть простой способ, чтобы написать лямбда-выражение вместо этого.
Вы смотрели на 'Collectors.joining()' или вопрос о его реализации? –
http://stackoverflow.com/questions/31456898/convert-a-for-loop-to-concat-string-into-a-lambda-expression – Savior
Вопрос в том, как использовать выражение лямбда, например: '. collect ((acc, p) -> acc + = p.lastName); ' – OscarRyz