HashMap은 Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다. Map은 Key와 Value로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 Key와 Value는 모두 객체로 이루어 저 있다.
Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다
메소드 | 설명 |
Map.put(key, value); | Map 안에 값 넣기 |
Map.get(key); | Map 안의 값 가져오기 |
Map.size(); | Map 크기 확인 |
Map.replace(key, value); | Map 안의 내용 변경하기 |
Map.containsKey(key); Map.containsValue(value); |
Map 안에 특정 Key, Value 들었는지 확인 |
Map.isEmpty(); | Map의 크기가 0인지 확인 |
Map.remove(key); | Map 안의 내용 삭제 |
Map.getOrDefault(key, default); | Key가 있으면 Value를 가져오고 없으면 default값 가져오기 |
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap();
map.put("A", 1000);
map.put("B", 2000);
map.put("C", 3000);
map.put("C", 4000);
System.out.println(map);
System.out.println(map.get("A"));
System.out.println(map.get("B"));
System.out.println(map.get("C"));
}
}
{A=1000, B=2000, C=4000}
1000
2000
4000
Map 자료구조의 특성상 Key는 유일하기에 C를 두 번 put해도 마지막 넣은 Value로 업데이트가 된다.
import java.util.HashMap;
import java.util.Map;
public class Main{
public static void main(String[] args) {
Map<String,Integer> map=new HashMap();
map.put("A", 1000);
map.put("B", 2000);
map.put("C", 3000);
if(!map.containsKey("C")) {
map.put("C", 4000);
}
System.out.println(map);
System.out.println(map.get("A"));
System.out.println(map.get("B"));
System.out.println(map.get("C"));
}
}
{A=1000, B=2000, C=3000}
1000
2000
3000
containsKey 메소드로 Map에 해당 Key의 여부를 확인한 후 값을 세팅하였다.
Map 전체를 순회하기 위해서는 entrySet(), keySet() 메소드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용합니다.
entrySet() | key와 value의 값이 모두 필요한 경우 사용 |
keySet() | key의 값만 필요한 경우 사용 |
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap();
map.put("A", 1000);
map.put("B", 2000);
map.put("C", 3000);
if(!map.containsKey("C")) {
map.put("C", 4000);
}
// entrySet
System.out.println("@@@@@entrySet()@@@@@");
for (Entry<String, Integer> entry : map.entrySet()) {
System.out.println("[key]:" + entry.getKey() + ", [value]:" + entry.getValue());
}
// keySet
System.out.println("@@@@@keySet()@@@@@");
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println("[key]:" + key + ", [value]:" + value);
}
}
}
@@@@@entrySet()@@@@@
[key]:A, [value]:1000
[key]:B, [value]:2000
[key]:C, [value]:3000
@@@@@keySet()@@@@@
[key]:A, [value]:1000
[key]:B, [value]:2000
[key]:C, [value]:3000
Map에 저장되어있는 Entry객체들을 반환한다. Entry객체는 키(Key)와 값(Value)의 쌍(Pair)을 저장하는 객체로 getKey()와 getValue() 메소드로 각각의 값을 가지고 올 수 있다.
Map에 저장되어있는 키(Key)들을 반환한다. get()메소드로 키(Key)에 대응되는 값(Value)를 가지고 올 수 있다.
[JAVA] SortedMap - TreeMap 사용법
[JAVA] 우선순위큐 (Priority Queue) (0) | 2022.02.24 |
---|---|
JAVA 배열(Array) 복사/복제 clone() (1) | 2022.01.12 |
객체 참조시 인터페이스 사용 이유 (0) | 2021.12.08 |
Reflection 을 이용한 getMethod / getDeclaredMethods / invoke (1) | 2021.11.22 |
[JAVA] 기계 독해API 사용 (1) | 2021.09.30 |
댓글 영역