본문 바로가기
Old Posts/Java

[Java] computeIfAbsent 예제

by A6K 2021. 1. 19.

Map을 사용할 때 굉장히 빈번하게 사용하는 코드 패턴이 있다.

Map<Key, Value> map = new HashMap();

Value value = map.get(key);
if (value == null) {
    value = getNewValue(key);
    map.put(key, value);
}

Map에서 특정 키에 해당하는 값이 존재하는지 확인한 후, 없으면 새로 만들어서 넣어주는 형태의 코드다. 

Key 값에 해당하는 Value가 존재하면 가져와서 사용하고 없으면 새로 만들어주는 패턴의 코드를 위해 Java 8에서는 computeIfAbsent()라는 메소드를 이용해서 짧게 구현할 수 있다.

Map<Key, Value> map = new HashMap();

Value value = map.computeIfAbsent(key, k -> getNewValue(key));

4줄짜리 코드가 한줄로 깔끔하게 구현되었다.

 

댓글