본문 바로가기
IT_Developers/JAVA

JAVA - HashMap 이란? / 이론

by 고코더 2022. 2. 7.

안녕하세요.

고코더 입니다.

 

HashMap 이란?

HashMap은 Map 인터페이스를 구현하고 있는 클래스입니다 키(key), 값(value)을 구성되어 있습니다. key는 정확히 하나의 value만 가질 수 있습니다. Java Collections Framework에 속한 구현체 클래스이며, Map 인터페이스를 구현한 함수입니다. key 값의 hashCode를 index로 Araay에 값을 저장하면서, 검색 속도는 매우 빠르게 작동합니다. 

    /**
     * Constructs a new {@code HashMap} with the same mappings as the
     * specified {@code Map}.  The {@code HashMap} is created with
     * default load factor (0.75) and an initial capacity sufficient to
     * hold the mappings in the specified {@code Map}.
     *
     * @param   m the map whose mappings are to be placed in this map
     * @throws  NullPointerException if the specified map is null
     */
    public HashMap(Map<? extends K, ? extends V> m) {
        this.loadFactor = DEFAULT_LOAD_FACTOR;
        putMapEntries(m, false);
    }

 

HashMap 특징

 

- 저장은 느리다는 단점이 있다.

- 많은 양의 데이터를 검색하는데 뛰어난 성능을 보인다.

- 반대의 장점을 가진 것은 TreeMap이다.

- 키값은 중복이 불가능 하지만, 값(vlaue)은 중복이 가능하다. 

 

 

HashMap의 주요 메서드

메소드 설명
boolean containsKey(Object key) 지정된 key가 포함되어 있는지 여부를 반환한다.  
boolean containsValue(Object value) 지정된 value가 포함되어 있는지 여부를 반환한다.
Set entrySet() 저장된 키와 값을 엔트리(키와 값의 결합)의 형태로 Set에 저장하여 반환한다. 
Set keySet() 저장된 모든 key를 Set에 저장하여 반환한다. 
void clear() 저장된 모든 객체(key, value)를 제거한다. 
Object remove(Object key) 지정된 key에 해당하는 value를 제거한다. 
Object getOrDefault(Object key, Object defaultValue) 지정된 키의 값을 반환한다. 키가 없을 경우, default Value로 지정된 데이터를 반환한다. 
void putAll(Map map) Map에 저장된 모든 요소를 HashMap에 저장한다. 
Object replace(Object key, Object value) 지정된 키의 값을 지정된 value로 대체한다. 
boolean replace(Object key, Object oldValue, Object newValue) 지정된 키와 값(oldValue)가 모두 일치하는 경우에만 새로운 값으로 대체하며, 일치 여부를 반환한다. 

참조: https://moonong.tistory.com/5

 

만약 면접에서 물어본다면?

 

해쉬 맵을 사용하면 저장은 느리지만 데이터를 검색하는데 뛰어는 성능으로 Map을 구했을 때, 키(Key)와 값(Value)을 묶어서 하나의 데이터(entry)로 사용이 가능합니다. List가 아닌 이 방법을 사용하는 이유는 성능 때문입니다. 키 값은 Null을 지원하지만 멀티스레드는 환경은 지원하지 않습니다. 

 

 

 

댓글