CodeGym /Java Blog /무작위의 /Java의 HashMap getOrDefault 메소드
John Squirrels
레벨 41
San Francisco

Java의 HashMap getOrDefault 메소드

무작위의 그룹에 게시되었습니다

Java의 HashMaps에 대한 getOrDefault 메서드는 무엇입니까?

getOrDefault 메서드는 HashMap 의 지정된 키에 매핑된 값을 반환합니다 . 해당 키가 없으면 기본값이 반환됩니다.”
java.util.HashMap 클래스는 getOrDefault 메소드 와 함께 제공되어 기본값을 전달하는 추가 권한을 제공합니다 . 기본값은 다양한 상황에서 다양한 목적으로 사용될 수 있습니다. 간단한 get 메서드와의 사용법 및 비교는 게시물 뒷부분에서 설명합니다.

getOrDefault() 메서드의 헤더는 무엇입니까?

getOrDefault 메서드 의 일반 헤더는 다음과 같이 정의됩니다.

hashMap.getOrDefault(Object key, Object defaultValue)

전달된 매개변수

메서드 헤더는 두 개의 인수를 사용합니다. 아래 데이터 유형과 함께 등록됩니다.
  1. 첫 번째는 객체 유형의 지정된 키 입니다.
  2. 다른 객체 유형은 메서드 인수로 객체 키 에 대해 전달된 매개변수인 defaultValue 입니다.

getOrDefault() 메서드의 작동

다음 두 가지 간단한 단계를 통해 getOrDefault() 메서드 의 작동을 이해할 수 있습니다 .
  1. getOrDefault (key, defaultValue) 는 HashMap 에 해당하는 값 가져오도록 설계되었습니다 .
  2. 와 연결된 값이 있으면 해당 값이 반환됩니다. 반면에 값을 사용할 수 없으면 이 메서드에 매개 변수로 전달된 defaultValue가 반환됩니다.

예 1


import java.util.HashMap;

public class Driver1{

	public static void main(String[] args) {

		// Declare a HashMap
		HashMap weekDays = new HashMap<>();

		// Add data to the HashMap
        weekDays.put("Monday", "Working Day");
        weekDays.put("Tuesday", "Working Day");
        weekDays.put("Wednesday", "Working Day");
        weekDays.put("Thursday", "Working Day");
        weekDays.put("Friday", "Working Day");
        weekDays.put("Saturday", "Off Day");
        weekDays.put("Sunday", "Off Day");
        
        // Print the data in the HashMap
        System.out.println("Working Schedule : " + weekDays + "\n");
              
  
        // Check if the given key is present in the Map
        // IF yes, its value will be returned
        String sunday = weekDays.getOrDefault("Sunday", "No Announcements Yet.");
        System.out.println("Is Sunday a working day?  " + sunday);
        
        // IF not, the default value passed will be returned
        String christmas = weekDays.getOrDefault("Christmas", "National Holiday");
        System.out.println("Is Christmas a working day?  " + christmas);

        // Key not present in the HashMap
        // Default Value returned
        String easter = weekDays.getOrDefault("Easter", "National Holiday");
        System.out.println("Is Easter a working day?  " + easter);
	}

}

산출

근무 일정 : {월요일=근무일, 목요일=근무일, 금요일=근무일, 일요일=휴무일, 수요일=근무일, 화요일=근무일, 토요일=휴일} 일요일이 근무일인가요? 휴무일 크리스마스는 일하는 날인가요? 국경일 부활절은 근무일입니까? 공휴일

get() 메서드가 아닌 getOrDefault()를 사용하는 이유는 무엇입니까?

Java의 간단한 get() 메서드는 HashMap 에서 요청된 값을 가져오는 데 사용됩니다 . 키가 발견되면 값이 반환됩니다. 키를 찾을 수 없는 경우 "null"이 반환됩니다. 기본값이 반환될 것으로 예상되는 경우 getOrDefault () 메서드가 단순한 get 메서드보다 선호됩니다 . 다음은 이해를 돕기 위한 간단한 예입니다.

예 2


import java.util.HashMap;
public class Driver2{

	public static void main(String[] args) {

	  HashMap<Object, Boolean> holidays = new HashMap<>();

	  // Add data to the HashMap
        holidays.put("Saturday",  true);
        holidays.put("Sunday", true);
        
        // Print the data in the HashMap
        System.out.println("Holidays: " + holidays + "\n");

        // Key not present, default value returned
        Object christmas = holidays.getOrDefault("Christmas", true);
        System.out.println("Is Christmas a holiday?  " + christmas);
        
        // Key not present, null returned
        christmas = holidays.get("Christmas");
        System.out.println("Is Christmas a holiday?  " + christmas);
	}
}

산출

휴일: {Sunday=true, Saturday=true} 크리스마스가 휴일인가요? 사실 크리스마스가 휴일인가요? 없는
getOrDefaultget 메서드 의 차이점을 볼 수 있습니다 . 출력에 인쇄된 대로 첫 번째 메서드는 키를 찾을 수 없는 경우 기본값을 반환하고 후자는 null을 반환합니다.

결론

이 게시물을 마치면 HashMapgetOrDefault() 메서드에 익숙해져야 합니다. 실습을 통해 학습하는 것이 좋습니다. 도중에 막히면 ​​이 게시물을 다시 확인하십시오. 그때까지 계속 연습하고 계속 성장하십시오!
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION