JAVA [JAVA] MAP과 HASH MAP의 차이? 미로그 2024. 5. 19. 12:22 Map이란? - Map은 자바에서 키(key)와 값(value)을 저장하는 데이터 구조를 표현하는 인터페이스이다. (= Map 인터페이스라고 불린다.) - 키와 값의 쌍을 '매핑(Mapping)'이라고 부른다. - Map 인터페이스는 여러 구현체가 있으며, 그중 하나가 Hash Map 이다. (Map 인터페이스의 여러 구현체 : Hash Map, Tree Map, Linked Hash Map 등) Hash Map 이란? - Hash Map은 Map인터페이스를 구현한 클래스이며, 해시 테이블을 사용하여 키와 값을 저장한다. - 키와 값을 둘 다 null일 수 있으며, Hash Map은 키 중복을 허용하지 않지만 값의 중복은 허용한다. - Hash Map은 삽입순서를 유지하지 않는다. 대신 해시 함수에 의해 결정되는 순서대로 요소를 저장한다. 두개의 차이점 ? Map 인터페이스는 키와 값을 쌍으로 데이터를 저장하는 구조를 표현하며, HashMap은 이를 구현한 클래스 이다. = 기능상에서 차이는 없지만, 유지보수 면에서 차이가 날 수는 있다. 아래와 같이 선언이 되어있다고 하자. HashMap<String, Object> map1 = new HashMap<String, Object>(); Map<String, Object> map2 = new HashMap<String, Object>(); 위의 두 코드는 기능상에서 차이는 보이지 않지만 유지보수면에서 차이가 날 수 있다. Map2처럼 Map인터페이스를 사용해서 HashMap을 사용하게 되면, 나중에 HashMap이 아닌 다른 종류의 Map을 사용해야하는 상황이 발생한다고 하더라도 많은 코드 수정 필요없이 손쉽게 이를 반영할 수 있다. 하지만 Map1처럼 작성하게 된다면 map Object는 오직 HashMap에 대한 Object만 담을 수 있기 때문에 Map2 보다 코드의 수정이 많아지고 불편해지기 때문에 유지보수성이 떨어진다. + 추가적인 Map 인터페이스 구현체 알아보기 Reference https://statuscode.tistory.com/38 https://juyoungit.tistory.com/587 공유하기 게시글 관리 MI_Log 'JAVA' 카테고리의 다른 글 [JAVA] Spring 어노테이션 @SuppressWarnings 이란? (0) 2024.07.30 [JAVA] Map을 구현하는 클래스 종류 (0) 2024.05.19 [JAVA] Maven 이란? (0) 2024.05.19 [JAVA] Public Class 꼭 사용하는 이유? (feat. Public Class VS Class) (0) 2024.03.27 [JAVA] 빌드란?(+ Ant, Maven, Gradle) (0) 2024.01.09 'JAVA' Related Articles [JAVA] Spring 어노테이션 @SuppressWarnings 이란? [JAVA] Map을 구현하는 클래스 종류 [JAVA] Maven 이란? [JAVA] Public Class 꼭 사용하는 이유? (feat. Public Class VS Class)