[자바] Map

조하영·2022년 12월 26일

java

목록 보기
5/7

Map이란 key-value로 값을 저장하는 자료구조를 의미하구요, 자바에서는 Map의 행동을 정의해놓은 인터페이스입니다.

Map 인터페이스를 구현한 구현체로 HashTable, HashMap, TreeMap, LinkedHashMap, Properties 등이 있는데요

이진 트리를 기반으로 한 Map은 TreeMap 입니다. 이진 트리를 기반으로 저장했다는건 탐색에 용이하겠죠.  (값이 n 이상인 객체를 탐색하기 등)

HashTable과 HashMap은 키 객체의 해시값을 버킷이라는 곳에 저장하고 있고 그 값을 통해 객체를 뽑아와서 O(1)의 속도로 객체를 찾아올 수 있는게 장점입니다. 

그렇다면 HashTable과 HashMap의 차이는 무엇이냐? (아래 설명에서 버전은 확실하지가 않습니다;;)

HashTable은 자바 1.0부터 존재하던 구현체로 thread-safe 하고 null 값을 허용하지 않습니다.

HashMap은 자바 1.2에 생겨난 구현체로 thread-safe하지 않고 null을 허용합니다. (HashMap을 thread-safe하게 사용하고 싶다면 Collections 클래스에 synchronizedMap() 메서드를 사용하시면 됩니다)

profile
공부하는 개발자

0개의 댓글