함수 두개를 연결 andThan
Function<String , Integer> f = (s) -> Integer.parseInt(s,16);
Function<Integer , String> g = (i) -> Integer.toBinaryString(1);
위 두 함수를 합쳐서 사용
Function<String , String> h = f.andThan(g);
//Function<입력 , 출력> , f 함수를 실행한 결과를 g에 매개변수로서 적용한다,
항등함수
x를 넣으면 x가 그대로 나오는 함수
Function<String , String> f2 = x -> x;
컬렉션 프레임워크와 함수형 인터페이스
함수형 인터페이스를 사용하는 컬렉션 프레임워크 의 메서드
Collection , boolean removeIf(predicate<E> filter) 조건에 맞는 요소를 삭제
List void replaceAll(unaryOperator<E> operator) 모든 요소를 변환해서 대체
Inteable void forEach(consumer<T> action) 모든 요소에 작업 action 을 수행
map V compute(K key , BiFunction<K , V, V> f) 지정된 키 값에 작업 f를 수행
map V computeIfAbsent(K key , Function<K,V> f) 키가 없으면 작업 f수행후 추가
map V computeIfPresent(K key , BiFunction<K , V , V> f) 지정된 키가 있을때 작업 f수행
map V merge(K key , V value , BiFunction<V , V ,V> f) 모든 요소에 병합작업 f 수행
map void forEach(BiConsumer<K,V> action) 모든 요소에 작업 action을 수행
map void replaceAll(BiFunction<K , V ,V> f) 모든 요소에 치환작업 f를 수행
ex)
list.forEach( i -> system.out.println("")); list의 모든 요소를 출력
list.removeIf( x -> x%2 == 0 || x%3 ==0); 2또는 3의 배수를 제거
list.replaceAll(i -> i*10); 모든 요소에 10을 곱한다.
map.forEach((k,v) -> system.out.println("k" + "v")); map의 모든 요소를 {K,V} 형식으로 출력
list.forEach( i -> system.out.println(i));
-forEach는 consumer로 값을 받기만 한다.
-iterator가 필요없다.
list.removeIf(x -> x%2 == 0 || x%3 == 0)
-조건을 만족하면 그 값을 삭제
list.replaceAll( i -> i*10)
- list의 각 요소에 10을 곱한다.
map.forEach((K,V) -> system.out.println("k" + "v"));
-map을 받아 각 키 , 값을 출력
-iterator가 필요없다.
'JAVA' 카테고리의 다른 글
스트림1 스트림의 특징 (0) | 2023.03.15 |
---|---|
람다6 메소드 참조 (0) | 2023.03.15 |
람다4 Predicate 람다 조건식 (0) | 2023.03.15 |
람다3 함수형 인터페이스 (0) | 2023.03.15 |
람다2 (0) | 2023.03.14 |