[Java - getOrDefault()]

린린린·2025년 8월 5일
post-thumbnail

💡getOrDefault()                                                   

✅ 기능

  • Java 8부터 Map 인터페이스에 추가된 메서드
  • Map에 해당 키가 있는 경우엔 그 값을 반환하고, 그렇지 않으면 우리가 지정한 기본값(defaultValue)을 대신 반환한다
/**
* key: 찾고 싶은 키
* defaultValue: 키가 없을 때 대신 반환할 기본값
*
* return 해당 키 존재시 값 반환 그렇지 않으면 defalt반환
*/
getOrDefault(Object key, V defaultValue)

✅ 기본 사용 예:

import java.util.HashMap;
import java.util.Map;

public class GetOrDefaultExample {
  public static void main(String[] args) {
      Map<String, Integer> scoreMap = new HashMap<>();
      scoreMap.put("Alice", 90);
      scoreMap.put("Bob", 80);

      int aliceScore = scoreMap.getOrDefault("Alice", 0); // 존재하므로 90
      int charlieScore = scoreMap.getOrDefault("Charlie", 0); // 없으므로 기본값 0

      System.out.println("Alice: " + aliceScore); //result 90
      System.out.println("Charlie: " + charlieScore); //result 0
  }
}

✅ Map.get() 과 비교

  • 보통 Map.get()은 키가 없을 경우 null을 반환 ➡️ 이럴 경우 null 체크 필요
// map.get 사용
Integer score = map.get("key");
if (score == null) { //null 체크
    score = 0;
}

// map.getOrDefault 사용
Integer score = map.getOrDefault("key", 0);

⇒ 가독성👍 코드 단축

⚠️ 주의할 점

  • getOrDefault()는 값을 넣는(set) 메서드 아님
    → 단지 조회할 때 기본값을 사용 맵에 데이터를 추가 ❌

  • defaultValue는 찾는 값이 존재해도 실행
    → 계산 비용이 크거나 무거운 로직 사용시 computeIfAbsent() 고려

💡 실전 팁

  • 빈도 수 계산 or 카운터 초기화시 자주 사용
Map<String, Integer> counter = new HashMap<>();

String key = "apple";
counter.put(key, counter.getOrDefault(key, 0) + 1);

이 글에서는 백준 문제 풀이 과정에서 사용한 주요 기술과 알고리즘을 설명합니다.

  • 특정 요소 찾기

실제 문제 풀이 코드는 아래 깃허브 저장소에서 확인하실 수 있습니다.
👉 깃허브 - 백준 문제 풀이 저장소


이 글과 코드를 보시고 개선할 부분이나 궁금한 점이 있으면 편하게 댓글이나 메시지로 알려주세요.💪
여러분의 피드백 덕분에 더 나은 콘텐츠를 만들 수 있습니다.
함께 성장해 나가요!

profile
개발은모르겠고일단기록

0개의 댓글