[JAVA]getOrDefault

2025. 5. 16. 11:03·Language/JAVA

설명

Java의 Map 인터페이스를 사용할 때 존재하지 않는 키로 값을 조회하면 null이 반환된다. 이때 null을 처리하지 않으면 NullPointerException이 발생할 수 있으므로 안전하게 기본값을 반환하도록 돕는 메서드가 getOrDefault()이다.

사용법

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

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> scores = new HashMap<>();
        scores.put("신짱구", 90);
        scores.put("신짱아", 80);
		
        /*
        getOrDefault(key, defaultValue)
        key가 존재하면 해당 값을 반환, 없으면 defaultValue를 반환
        */
        int score1 = scores.getOrDefault("신짱구", 0); //존재하는 키
        int score2 = scores.getOrDefault("김철수", 0); //존재하지 않는 키

        System.out.println("신짱구: " + score1); //90
        System.out.println("김철수: " + score2); //0
    }
}

등장 횟수를 세는 경우

getOrDefault()는 어떤 값이 Map에 몇 번 등장했는지를 세는 로직에서도 자주 사용된다. 값이 없을 경우 0으로 간주하고 값을 1씩 증가시키는 방식으로 활용할 수 있다.

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

public class FrequencyExample {
    public static void main(String[] args) {
        String[] names = {"신짱구", "신짱아", "김철수", "신짱구", "김철수", "신짱구"};

        Map<String, Integer> map = new HashMap<>();

        for (String name : names) {
            //key가 있으면 값을 반환하고 없으면 0을 반환하고 그 값에 +1 해서 다시 저장
            map.put(name, map.getOrDefault(name, 0) + 1);
        }

        System.out.println(map); //{신짱구=3, 신짱아=1, 김철수=2}
    }
}

'Language > JAVA' 카테고리의 다른 글

[JAVA]Map.Entry  (0) 2025.05.16
[JAVA]InteliJ에서 생성 메뉴 단축키  (0) 2025.05.11
[JAVA]public 클래스명과 파일명 일치 규칙  (0) 2025.04.22
[JAVA]reduce() 메서드  (0) 2025.02.14
[JAVA]Optional 클래스  (0) 2025.02.10
'Language/JAVA' 카테고리의 다른 글
  • [JAVA]Map.Entry
  • [JAVA]InteliJ에서 생성 메뉴 단축키
  • [JAVA]public 클래스명과 파일명 일치 규칙
  • [JAVA]reduce() 메서드
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS N
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
        • 알고리즘 N
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[JAVA]getOrDefault
상단으로

티스토리툴바