Java의 HashMaps에 대한 getOrDefault 메서드는 무엇입니까?
getOrDefault() 메서드의 헤더는 무엇입니까?
getOrDefault 메서드 의 일반 헤더는 다음과 같이 정의됩니다.
hashMap.getOrDefault(Object key, Object defaultValue)
전달된 매개변수
메서드 헤더는 두 개의 인수를 사용합니다. 아래 데이터 유형과 함께 등록됩니다.- 첫 번째는 객체 유형의 지정된 키 입니다.
- 다른 객체 유형은 메서드 인수로 객체 키 에 대해 전달된 매개변수인 defaultValue 입니다.
getOrDefault() 메서드의 작동
다음 두 가지 간단한 단계를 통해 getOrDefault() 메서드 의 작동을 이해할 수 있습니다 .- getOrDefault (key, defaultValue) 는 HashMap 의 키 에 해당하는 값 을 가져오도록 설계되었습니다 .
- 키 와 연결된 값이 있으면 해당 값이 반환됩니다. 반면에 값을 사용할 수 없으면 이 메서드에 매개 변수로 전달된 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} 크리스마스가 휴일인가요? 사실 크리스마스가 휴일인가요? 없는
getOrDefault 와 get 메서드 의 차이점을 볼 수 있습니다 . 출력에 인쇄된 대로 첫 번째 메서드는 키를 찾을 수 없는 경우 기본값을 반환하고 후자는 null을 반환합니다.
GO TO FULL VERSION