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));