import java.util.HashMap;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Function;
public class ComputIfPresentTest {
/*
computeIfPresent( key, BiFunction<T, U, R>)
@Param1 : map의 key
@Param2
구현 메소드 : R apply(T t, U u)
U : 현재 map의 key
U : 현재 map의 value
R : 메소드 수행 후 map의 value 값
*/
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("lee",22);
map.put("lim",32);
map.put("kim",34);
map.put("park",44);
// 지정된 key가 존재할 때만 작업을 수행한다.
map.computeIfPresent("kim", new BiFunction<String, Integer, Integer>() {
@Override
public Integer apply(String key, Integer value) {
System.out.println("1번 파라미터 확인 : " + key); // 현재 map의 key
System.out.println("2번 파라미터 확인 : " + value); // 현재 map의 value
return value + key.length();
// 메소드가 수행되고나면 map의 value는 37이 된다.
}
});
//람다
map.computeIfPresent("park", (k,v)-> 49);
// map에 존재하지 않는 key에 대하여 수행할 수 없다.
map.computeIfPresent("hong",(k,v)-> 49);
map.forEach((k,v)-> System.out.println(k+" "+v));
}
}
댓글 영역