영호
[Java] Map인터페이스 - HashMap 본문
HashMap이란
- Java의 collections 중 Map인터페이스를 구현한 클래스 중 하나입니다.
- 파이썬의 딕셔너리처럼 "Key : Value"형태로 이루어져 있습니다.
- 이미 존재하는 Key에 새로운 값을 넣을 경우 기존 값은 새로운 값으로 대체됩니다.
- Key는 중복될 수 없습니다.
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
hashMap.put("test", 2);
System.out.println("hashMap = " + hashMap);
// hashMap = {test=2}
- 멀티 스레드 환경에서는 ConcurrentHashMap을 사용해야 합니다.
- 해시 함수를 이용해 값을 저장하고 찾기 때문에 데이터 검색에서 속도가 빠른 장점이 있습니다.
HashMap 주요 메서드
메서드 | 설명 |
void clear() | 해당 맵(map)의 모든 매핑(mapping)을 제거함. |
boolean containsKey(Object key) | 해당 맵이 전달된 키를 포함하고 있는지를 확인함. |
boolean containsValue(Object value) | 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함. |
V get(Object key) | 해당 맵에서 전달된 키에 대응하는 값을 반환함. 만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함. |
boolean isEmpty() | 해당 맵이 비어있는지를 확인함. |
Set<K> keySet() | 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함. |
V put(K key, V value) | 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함. |
V remove(Object key) | 해당 맵에서 전달된 키에 대응하는 매핑을 제거함. |
boolean remove(Object key, Object value) | 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함. |
V replace(K key, V value) | 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함. |
boolean replace(K key, V oldValue, V newValue) | 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함. |
int size() | 해당 맵의 매핑의 총 개수를 반환함. |
실습
put(key, value)
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap = " + hashMap);
// hashMap = {test=1}
get(key)
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 1
remove(key)
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 1
hashMap.remove("test");
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = null
replace(key, value)
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
//hashMap.get("test") = 1
hashMap.replace("test", 10);
System.out.println("hashMap.get(\"test\") = " + hashMap.get("test"));
// hashMap.get("test") = 10
size()
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
hashMap.put("test1", 1);
hashMap.put("test2", 1);
System.out.println("hashMap = " + hashMap); // hashMap = {test2=1, test=1, test1=1}
System.out.println("hashMap.size() = " + hashMap.size()); // hashMap.size() = 3
keySet()
Map<String, Integer> hashMap = new HashMap();
hashMap.put("test", 1);
hashMap.put("test1", 1);
hashMap.put("test2", 1);
System.out.println("hashMap = " + hashMap.keySet());
// hashMap = [test2, test, test1]
출처
'Language > JAVA' 카테고리의 다른 글
[JAVA] Array를 stream으로 (Arrays.stream() vs Stream.of()) (0) | 2022.10.28 |
---|---|
[JAVA] instance method vs static method (0) | 2022.10.04 |
[Java] List인터페이스 - LinkedList (0) | 2022.06.16 |
[Java] List인터페이스 - ArrayList (0) | 2022.06.14 |
[Java] String Constant Pool (0) | 2022.06.08 |
Comments