Map 인터페이스는 키(key)와 값(value)으로 구성된 객체를 저장하는 구조로 되어 있습니다. 여기서 이 객체를 Entry 객체라고 하는데, 이 Entry 객체는 키와 값을 각각 Key 객체와 Value 객체로 저장합니다.

Map을 사용할 때 중요한 사실은 키는 중복으로 저장될 수 없지만, 값은 중복 저장이 가능하다는 것입니다. 이는 키의 역할이 값을 식별하는 것이기 때문입니다.
만약 기존에 저장된 키와 같은 키로 값을 저장하면, 기존의 값이 새로운 값으로 대치됩니다.
// Value 에 배열, list, 다른 map 등을 넣어 하나의 key에 여러가지 내용 저장 가능.
| 객체 추가 | Object | put(Object key, Object value) | 주어진 키로 값을 저장합니다. 해당 키가 새로운 키일 경우 null을 리턴하지만, 같은 키가 있으면 기존의 값을 대체하고 대체되기 이전의 값을 리턴합니다. |
| 객체 검색 | boolean | containsKey(Object key) | 주어진 키가 있으면 true, 없으면 false를 리턴합니다. |
| boolean | containsValue(Object value) | 주어진 값이 있으면 true, 없으면 false를 리턴합니다. | |
| Set | entrySet() | 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴합니다. | |
| Object | get(Object key) | 주어진 키에 해당하는 값을 리턴합니다. | |
| boolean | isEmpty() | 컬렉션이 비어 있는지 확인합니다. | |
| Set | keySet() | 모든 키를 Set 객체에 담아서 리턴합니다. | |
| int | size() | 저장된 Entry 객체의 총 갯수를 리턴합니다. | |
| Collection | values() | 저장된 모든 값을 Collection에 담아서 리턴합니다. | |
| 객체 삭제 | void | clear() | 모든 Map.Entry(키와 값)을 삭제합니다. |
| Object | remove(Object key) | 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 리턴합니다. |
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashmapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>() {{
put("피카츄", 85);
}};
// Entry 객체저장
map.put("꼬부기", 95);
map.put("야도란", 75);
map.put("파이리", 65);
map.put("피존투", 15);
// 저장된 총 Entry 수 얻기
System.out.println("총 entry 수: " + map.size());
// 객체 찾기
System.out.println("파이리 : " + map.get("파이리"));
// key를 요소로 가지는 Set을 생성 -> 아래에서 순회하기 위해 필요합니다.
Set<String> keySet = map.keySet();
// Set<T> entrySet = map.entrySet();
// Set<Map.Entry<K, V>> entrySet = map.entrySet();
// Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for(Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
for(String key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + " : " + value);
}
}
}
*수정필요
'코딩공부' 카테고리의 다른 글
| Java Annotation (0) | 2024.04.22 |
|---|---|
| Java Collection class 종류 정리 (0) | 2024.04.19 |
| Java Collection Set (0) | 2024.04.19 |
| Java Iterator (0) | 2024.04.19 |
| Java List 공부 (0) | 2024.04.19 |