반응형
Map 에서 key 값으로 value 값을 취득하는 경우 get() 메소드를 사용한다.
이때, Map 에서 key 가 존재하면 해당하는 key 의 value 값을 반환하고, 찾는 key 가 없거나 null 이면 null 을 반환한다.
■ get()
1. 예제코드
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<>();
// 추가
map.put("red", "빨강");
map.put("blue", "파랑");
map.put("purple", "보라");
// 취득
System.out.println(map.get("red"));
System.out.println(map.get("blue"));
// key 값이 존재하지 않는 경우
System.put.println(map.get("orange"));
}
}
2. 출력결과
get(key) 에서 key 가 존재하지 않으면, null 을 반환한다.
빨강
파랑
null
이때, null 대신 기본 값을 반환하도록 할 수 있는 메소드가 getOrDefault() 이다.
default V getOrDefault(Object key, V defaultValue) {
V v;
return (((v = get(key)) != null) || containsKey(key))
? v
: defaultValue;
}
getOrDefault(Object key, V defaultValue)
・Object key : 찾는 key 값
・V defaultValue : 찾는 key 의 value 값이 없거나 null 일때 반환하는 값
즉, key 가 존재하면 key 의 value 값을 반환하고 없거나 null 이면 defaultValue를 반환한다.
■ null 대신 기본 값을 반환하도록 할 수 있는 방법
1. getOrDefault()
null 대신 기본 값을 반환하도록 할 수 있는 방법1 : Map 의 getOrDefault() 메소드
1.1. 예제코드
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<>();
// 추가
map.put("red", "빨강");
map.put("blue", "파랑");
map.put("purple", "보라");
// getOrDefault()
System.out.println(map.getOrDefault("red", "디폴트값"));
System.out.println(map.getOrDefault("blue", "디폴트값"));
System.out.println(map.getOrDefault("orange", "디폴트값"));
}
}
1.2. 출력결과
빨강
파랑
디폴트값
2. Optional.ofNullable(값).orElse("디폴트값")
null 대신 기본 값을 반환하도록 할 수 있는 방법2로 Optional.ofNullable().orElse() 도 이용해 볼 수 있다.
2.1. 예제코드
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<>();
// 추가
map.put("red", "빨강");
map.put("blue", "파랑");
map.put("purple", "보라");
// ofNullable()
System.out.println(Optional.ofNullable(map.get("red")).orElse("디폴트값"));
System.out.println(Optional.ofNullable(map.get("purple")).orElse("디폴트값"));
System.out.println(Optional.ofNullable(map.get("yellow")).orElse("디폴트값"));
}
}
2.2. 출력결과
빨강
보라
디폴트값
반응형