Language/Java
[Java] Hash Map Method, 사용법
junz
2023. 1. 4. 16:54
728x90
반응형
Hash Map ?
Hash Map은 Map 인터페이스를 구현한 컬렉션이다.
Map 의 성질을 가지고 있으며 해싱(Hashing)을 사용하기 때문에 많은 데이터에서 빠른 속도로 검색이 가능하다.
Hash Map의 특징
1. 키와 값으로 구성되어 있다.
2. 값을 중복이 가능하지만 키는 중복이 불가능하다.
3. 만약 중복이 되는 키 값을 삽입할 경우 이전 값은 없어지고 새로운 값으로 저장된다.
4. List와 다르게 정해놓은 용량을 넘어서서 새로운 값을 add하면 한 칸씩 늘어나는 것이 아니라 약 두 배씩 용량이 들어난다.
- 따라서 Hash Map을 선언할 때, 얼마나 쓸건지 알고있다면 capacity를 미리 정해주는게 좋다.
Hash Map Declaration
HashMap<String,String> hashmap = new HashMap<String,Integer>();
// <> 안의 타입은 생략가능
// () 안에 다른 맵이 들어가면 그 맵의 값을 다 가진 Hash Map
// () 안에 정수 값이 들어가면 초기용량(capacity) 지정
Hash Map Method
- put(key, value)
- remove(key)
- clear()
- get(key)
- entrySet()
- entrySet().iterator()
- keySet()
- ketSet().iterator()
- size()
- isEmpty()
- containsKey(key)
- containsValue(value)
- replace(key, value)
- getOrDefault(key, defaultValue)
1. value 추가
put(key, value)
hashmap.put("휴대폰", 5000);
hashmap.put("컴퓨터", 20000);
"휴대폰" 이라는 key와 5000 의 value가 Map 에 입력된다.
"컴퓨터" 이라는 key와 20000 의 value가 Map 에 입력된다.
2. value 삭제
remove(key)
hashmap.remove("컴퓨터");
"컴퓨터" 라는 key를 가진 (key, value)가 삭제된다.
3. map 초기화
clear()
hashmap.clear();
모든 값이 삭제 된다.
4. value 접근
get(key)
hashmap.get("컴퓨터");
// 활용
System.out.println(hashmap.get("컴퓨터"));
// console
// 20000
5. 전체 출력
전체출력을 하는 방법에는 크게 두 가지가 있다.
1. entrySet()
- iterartor 사용가능
2. keySet()
- iterator 사용가능
entrySet()
//entrySet()
for (Entry<String, Integer> en : hashmap.entrySet()){
System.out.println(en.getKey() + ", " + en.getValue());
}
//console
//휴대폰, 5000
//컴퓨터, 20000
entrySet().iterator()
// iterator 선언
Iterator<Entry<String, Integer>> entries = hashmap.entrySet().iterator();
// 출력
while(entries.hasNext()){ // 다음 값이 있는 경우 반복
Map.Entry<String, Integer> en = entries.next();
System.out.println(en.getKey() + ", " + en.getValue());
}
// console
// 휴대폰, 5000
// 컴퓨터, 20000
keySet()
for(String k : hashmap.keySet()){ // key loop
System.out.println( k + ", " + hashmap.get(k));
}
// console
// 휴대폰, 5000
// 컴퓨터, 20000
keySet().iterator()
// iterator 선언
Iterator<String> keys = hashmap.keySet().iterator();
// 출력
while(keys.hasNext()){ // 다음 값이 있는 경우 반복
int key = keys.next();
System.out.println(key + ", " + hashmap.get(key));
}
// console
// 휴대폰, 5000
// 컴퓨터, 20000
6. 그 외 Method
size()
- Hash Map 에 있는 데이터 개수를 반환해준다.
isEmpty()
- Hash Map이 비어있으면 true를 반환해준다.
- Hash Map에 데이터가 하나라도 있으면 false를 반환해준다.
containsKey(key)
- 매개변수로 주어진 key가 Hash Map에 있으면 true를 반환해준다.
- 없으면 false를 반환해준다.
containsValue(value)
- 매개변수로 주어진 value가 Hash Map에 있으면 true를 반환해준다.
- 없으면 false를 반환해준다.
replace(key, value)
- HashMap에 존재하는 (key, old_value) -> (key, value) 로 바꾸어준다.
- replace에 성공하면 old_value를 반환하고, 실패하면 null을 반환한다.
getOrDefault(key, defaultValue)
- key가 존재할 경우 그 key의 value를 반환한다.
- key가 존재하지 않을 경우(Hash Map에 없는 데이터) defalutValue를 반환한다.
728x90
반응형