Java를 사용하는데 있어서 List와 Map 등의 컬렉션을 다루는 처리가 많습니다.
Map은 List에 비해 값의 설정 방법이 다소 복잡하고 값을 취득하는 방법도 다릅니다.
Map에서 값을 취득하는 여러 가지 방법에 대해 알아보려고 합니다.
Map은 키와 값이 한쌍으로 보유하고 있는 컬렉션입니다.
컬렉션은 나중에 사이즈를 변경할 수 있는 동적 배열 같은 것입니다.
값을 추가할 때에는 키를 지정하여 추가하고, 추가한 키를 사용하여 값을 검색하거나 꺼낼 수 있습니다.
키는 중복이 허용되지 않고 키와 값은 참조형만 가질 수 있습니다.
그리고 Map은 연상 배열이라고도 불립니다.
키로 값을 취득하는 방법
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// Mapの宣言
Map<String, String> map = new HashMap<>();
// Mapにキーと値を格納
map.put("key1", "orange");
map.put("key2", "apple");
map.put("key3", "melon");
// Mapからデータを取得する
System.out.println(map.get("key1"));
System.out.println(map.get("key2"));
System.out.println(map.get("key3"));
}
}
Map의 값을 취득하려면 get메서드에 키를 지정하여 Map에서 값을 가져옵니다.
키를 지정해 Map에서 값을 취득하는 방법을 살펴보겠습니다.
결과
orange
apple
melon
변수 map을 선언하고 키와 데이터는 String형으로 선언했습니다.
put메서드를 사용하여 키와 값을 저장했습니다.
그리고 put메서드를 사용하여 저장한 값을 get메서드를 사용하여 취득해왔습니다.
get메서드를 사용해 값을 취득하는 경우에는 키를 지정해 꺼낼 수 있습니다.
모든 키 취득하기
Map에서 키를 모두 취득하고 싶은 경우가 있습니다.
모든 키를 취득하려면 keySet메서드를 사용합니다.
keySet메서드는 Map의 키를 Set형으로 반환합니다.
샘플을 보면서 확인해보겠습니다.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1", "val1");
map.put("key2", "val2");
for (String key : map.keySet()) {
System.out.println(key);
}
}
}
결과
key1
key2
샘플에서는 확장 for문과 keySet메서드 사용하여 Map에 들어있는 모든 키를 출력했습니다.
keySet메서드는 모든 키를 취득할 수 있는 메서드입니다.
모든 값 취득하기
이번에는 Map에서 값을 모두 취득하는 방법을 알아보겠습니다.
모든 값을 취득하기 위해서는 values메서드를 사용합니다.
values메서드도 Map의 값을 Set형으로 반환합니다.
샘플을 보면서 확인해보겠습니다.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1", "val1");
map.put("key2", "val2");
for(String val : map.values()){
System.out.println(val);
}
}
}
결과
val1
val2
샘플에서는 확장 for문과 values메서드 사용하여 Map에 들어있는 모든 값을 출력했습니다.
values메서드는 모든 값을 취득할 수 있는 메서드입니다.
키와 값 모두 취득하기
Map에 등록한 값을 모두 취득하는 방법을 알아보겠습니다.
Map에 저장한 키와 값에 Map.Entry인터페이스로 사용하여 접근할 수 있습니다.
접근한 Map.Entry에서 getKey메서드로 키를 getValue메서드로 값을 취득할 수 있습니다.
또는 동시에 취득하고 싶은 경우에는 Map의 Entry에서 entrySet메서드를 사용해 취득할 수 있습니다.
샘플을 보면서 사용방법을 보겠습니다.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1", "val1");
map.put("key2", "val2");
for(Map.Entry<String, String> entry : map.entrySet()){
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
결과
key1:val1
key2:val2
확장 for문과 entrySet메서드를 사용하여 Map 저장한 모든 키와 값을 출력하고 있습니다.
결과에는 Map에 저장되어 있는 모든 키와 값이 출력되었습니다.
Map의 키와 값을 취득하는 방법은 여러 가지 방법이 있습니다.
그중에서도 keySet, values, entrySet 메서드를 사용해 취득하는 방법을 알아봤습니다.
여러 가지 메서드가 존재하기 때문에 상황에 맞는 방법을 찾아 처리를 하는 것이 좋을 거 같습니다.
댓글