HashMap은 hashing 기법으로 데이터를 저장하여 데이터가 많아도 검색이 빠르다.
hashing 기법
해시함수를 이용해서 데이터를 해시 테이블(hash table)에 효율적으로 저장하고 읽어오는 것을 말한다.
Hash Table
배열과 링크드 리스트가 조합된 형태
배열의 장점인 접근성과 링크드 리스트의 장점인 변경이 용이한 것을 합친 형태이다.
HashMap map = new HashMap();
map.put("MyId", "abc");
map.put("MyPassword", "1234");
map.put("OtherPassword", "1234"); // value 중복 허용
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable {
transient Entry[] table;
...
static class Entry implements Map.Entry {
final Object key;
Object value;
...
}
}
map.put("test", "1234");
map.put("check", "1111");
map.put("check", "1234");
이렇게 넣으면 3번째 줄 put은 삽입이 아닌 변경이 이루어져 아래와 같은 결과를 낸다.
key 값으로 get을 해오고 없다면 default 값으로 설정해서 삽입하는 method
값 counting하는 경우에 많이 쓰임
Map의 크기를 알아내는 method
주로 경우의 수를 찾아야 하는 문제에 많이 쓰임
Pixabay로부터 입수된 mohamed Hassan님의 이미지 입니다.