Помогите разобраться с лямбда выражением
Есть лист products и удаление по имени, подскажите пожалуйста что такое product!
products.removeIf(product -> product.getName().equals("Какое-то имя"));
Ответы (2 шт):
product - это переменная
лямбда-выражение можно было бы записать как:
function(product) {
return product.getName().equals("Какое-то имя");
}
т.е. для каждого элемента из массива products будет вызвана функция указанная выше в качестве параметра в которую передается этот элемент массива
и если функция вернет true, т.е. если будет выполнено условие product.getName().equals("Какое-то имя"), то элемент будет удален из массива
т.е. по сути на выходе получится список элементов у которых некоторый параметр name равен "Какое-то имя"
Под капотом метод removeIf использует цикл. И, если не углубляться, то будет обычный цикл foreach
for(Product product : products) {
// тут логика
}
Вот product - элемент списка на каждой итерации.