본문 바로가기

JAVA

람다5 함수 두개를 연결 andThan

함수 두개를 연결 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