JAVA
람다(Lambda) 함수 사용법(with collection 함수)
쿠카이든
2022. 2. 14. 11:33
728x90
class LambdaEx {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
int i = 0;
while (i < 10) {
list.add(i);
i++;
}
//list의 모든 요소를 출력
list.forEach(j -> System.out.print(j+","));
System.out.println();
//list에서 2또는 3의 배수를 제거한다.
list.removeIf(x -> x % 2 == 0 || x % 3 == 0);
System.out.println(list);
list.replaceAll(k -> k * 10); //list의 각 요소에 10을 곱한다.
System.out.println(list);
Map<String, String> map = new HashMap<>();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
map.put("4", "4");
//map의 모든 요소를 {k,v}의 형식으로 출력한다.
map.forEach((k,v)-> System.out.print("{"+k+","+v+"},"));
System.out.println();
}
}
- Java8.0에서 추가된 Lambda함수의 예이다.
- 웹개발에 주로 다루는 컬렉션 프레임웤을 좀 더 간단하게 표현할 수 있다.
- 위에 예시에 있는 인터페이스는 밑에 표로 정리했다.
인터페이스메서드설명
Iterable | void forEach(Consumer<T> action) | 모든 요소에 작업 action을 수행 |
Collection | boolean removeif(Predicate<E> filter>) | 조건에 맞는 요소를 삭제 |
List | void replaceAll(UnaryOperator<E> operator) | 모든 요소를 변환하여 대체 |
Map | void forEach(BiConsumer<K,V> action) | 모든 요소에 작업 action을 수행 |
- Stream에서도 Lambda를 활용할 수 있으니 공부해두면 좋을 듯하다.
728x90