// 람다식(문법)
// 절차지향 -> 객체지향 -> 함수형 프로그래밍
// for문, 컬렉션, 인터페이스가 완벽해야함 (람다식을 for문, 인터페이스로 다시 바꿔쓸 수 있을 정도로..)
## 람다식(lambda expression):
// 익명 함수(anonymous function)를 만들기 위한 간단하고 강력한 방법
// 보통 한 줄로 표현되며, 이름 없이 함수를 정의하고 사용할 수 있게 함
// # 기본구문 : (매개변수) -> 표현식
// (매개변수) : 람다 함수의 매개변수를 정의합니다.
// -> : 람다 함수의 매개변수와 표현식을 분리하는 연산자입니다.
// 표현식 : 람다 함수가 실행될 때 반환할 값을 나타냅니다.
List<Integer> list = new ArrayList<>();
list.add(8);
list.add(10);
list.add(7);
list.add(4);
list.add(18);
list.add(3);
// 이렇게 list를 만들었다고 했을 때
// 방법1. 고전적 for문 사용 (비추천)
// get을 직접적으로 사용해야되기 때문에 -> list반복문 돌릴때 특히 Linked!! 사용X
for(int i = 0 ; i < list.size() ; i++) {
System.out.println(list.get(i));
}
// 방법2. foreach사용
for(int e : list) {
System.out.println(e);
}
// 방법3. 함수형 프로그래밍
// --> 메서드 참조는 특히 자주 사용되는 메서드를 간결하게 참조할 때 유용하며, 가독성을 향상시키는 데 도움이 됨
// 3-1) ★★★ 람다식 : 함수를 호출해서 반복문을 돌린다
list.forEach(e -> {
System.out.println(e);
});
// --> list의 forEach 메서드는 함수형 인터페이스를 인자로 받아 리스트의 모든 요소에 대해 해당 함수를 실행시킴
// 3-2) 매서드 참조 활용 (특수한경우에 사용될 수 있다)
list.forEach(System.out::println);
// --> System.out::println은 System.out 객체의 println 메서드를 가리키는 메서드 참조
// --> 즉, list의 forEach 메서드는 리스트의 각 요소를 System.out.println 메서드로 전달하여 출력하는 동작을 수행
## list.forEach 메서드에 대해서
// *** list.forEach 메서드: 반복문과 유사한 동작을 수행하는 '함수'
// --> 컬렉션(예: 리스트)의 각 요소를 반복적으로 처리하는 함수형 프로그래밍 스타일의 메서드
// --> 컬렉션의 요소를 하나씩 가져와서 지정된 작업(람다식이나 메서드 참조)을 수행
// --> 반복문과는 조금 다른 개념을 가지고 있음
List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5);
list.forEach(element -> System.out.println(element));
'JAVA > DAY 20 _ 23.09.13' 카테고리의 다른 글
Lambda5_consumer(interface) (0) | 2023.09.13 |
---|---|
Lambda4_메서드참조 (0) | 2023.09.13 |
Lambda3_구현코드가 한줄일때 활용법 (0) | 2023.09.13 |
Lambda2 (0) | 2023.09.13 |
(람다식하기 전) interface review (0) | 2023.09.13 |