Lambda expressions
Duy Văn | 12/03/2025
Lambda expression của Java cũng giống lambda phía Python, đều được hiểu là hàm ẩn danh, phía Java thì gần hơn với “method” ẩn danh vì nó hoạt động như một method một dòng, nhưng nó không có tên và không có giá trị gọi lại nên chỉ dùng một lần
parameter -> expression
Nếu có nhiều param thì
(parameter1, parameter2) -> expression
expression này của chúng ta sẽ phải return ngay một giá trị, giá trị đấy thường sẽ là một expression tính toán, nếu nó là code block thì cũng vẫn phải return gía trị
(parameter1, parameter2) -> {
// code block
return expression;
}
Ví dụ chúng ta có thể rút gọn method in các phần tử của Array List với method forEach() và lambda expression
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
numbers.forEach((n) -> System.out.println(n));
Hay nhân hai tất cả các phần tử trong một list
ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
numbers.replaceAll(n -> n * 2);
numbers.forEach((n) -> System.out.println(n));