📌 해시맵(HashMap)이란?
- HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션이다.
- Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조입니다.
- Key는 중복 저장될 수 없지만, Value는 중복 저장될 수 있다.
- 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 덮어 씌운다.
- HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다.
- HashMap은 해시 함수를 통해 Key와 Value 가 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어 있는 위치 또한 관계가 없습니다.
📌 HashMap 선언 방식
// 선언 방식
HashMap<String,String> map1 = new HashMap<>();
HashMap<String,List<Integer>> map2 = new HashMap<>();
// 초기값 지정해주는 방식
Map<String, Integer> map3 = new HashMap<>() {
{
put("홍길동", 1);
put("이순신", 2);
put("호랑이", 2);
}
};
📌 HashMap 값 추가
HashMap<String,Integer> map = new HashMap<>();
map.put("홍길동",20);
map.put("이순신",30);
map.put("주윤발",40);
map.put("주윤발",20);
💡 만약 입력되는 키 값이 HashMap 내부에 존재한다면 기존의 값은 새로 입력되는 값으로 대치됩니다.
📌 HashMap 값 삭제
HashMap<String,Integer> map = new HashMap<>();
map.put("홍길동",20);
map.put("이순신",30);
map.put("주윤발",40);
map.remove("홍길동");
map.clear();
📌 HashMap 값 출력
HashMap<String, Integer> map = new HashMap<>();
map.put("홍길동", 20);
map.put("이순신", 30);
map.put("주윤발", 40);
map.put("주윤발", 20);
System.out.println(map); // {홍길동=20, 이순신=30, 주윤발=20}
System.out.println(map.get("이순신")); //key 값 이순신 의 value 값 얻기 : 30
// entrySet 저장된 key 와 value 를 같이 출력
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("[Key]:" + entry.getKey() + " [Value]:" + entry.getValue());
}
//[Key]:홍길동 [Value]:20
//[Key]:이순신 [Value]:30
//[Key]:주윤발 [Value]:20
//KeySet : 저장된 key 값 출력
for(String name : map.keySet()){
System.out.println(name);
}
// 홍길동
// 이순신
// 주윤발
// values : 키에 저장되어 있는 value 값 출력
for (int value : map.values()) {
System.out.println(value);
}
'DataStructure' 카테고리의 다른 글
[Java] 링크드리스트 (LinkedList) 자료구조 (0) | 2023.05.12 |
---|---|
[Java] 해시(Hash) & 해시 테이블(Hash Table) (0) | 2023.05.11 |
[Java] 덱 / 디큐 (Deque) 자료구조 (0) | 2023.05.10 |
[Java] 큐 (Queue) 자료구조 (0) | 2023.05.10 |
[Java] 스택 (Stack) 자료구조 (0) | 2023.05.08 |