HashMap 3

개발자 면접 질문 - HashMap, TreeMap, LinkedHashMap, CuncurrentHashMap 차이

1. HashMap - Hash 알고리즘에 의해 Get이 매우 빠르다. - 시간 복잡도 O(1) 2. TreeMap - Tree 알고리즘에 의해 Key, Value를 저장한다. - 키를 기준으로 오름차순으로 정렬되어 있다. - 시간 복잡도 O(logN) 3. LinkedHashMap - 링크드 리스트로 저장됨 - 입력된 순서대로 Key가 보장된다. - 시간 복잡도 O(n) 4. CuncurrentHashMap - 멀티쓰레드 환경이 지원되는 HashMap * 종합 - 특별한 이유가 없다면 검색 성능이 좋은 HashMap 사용 - 많은 데이터를 넣을 때는 TreeMap 성능이 좋지 않다. - 입력 순서가 의미있다면 LinkedHashMap이 좋지만, 많은 데이터가 입력 될 경우에는 성능이 좋지 않다. - 멀..

면접 - 자바 2020.12.03

개발자 면접 질문 - HashMap과 HashTable의 차이

1. HashTable - HashTable 은 key 라는 특별한 인덱스로 자료에 접근하는 배열로 구성되는 자료 구조 - HashTable의 Hash 함수는 Key 값을 받아 그 Key의 Hash Value(해쉬값) 을 리턴한다. - 상수 시간에 탐색이 가능 - Key 값으로 Null 제한 - 멀티쓰레드 환경 지원(Data 무결성을 보장) 2. HashMap - Key 값으로 Null 허용 - 멀티쓰레드 환경 미지원 3. 공통점 - Map 인터페이스를 상속받아 구현되며 데이터를 키와 값으로 관리한다. 4. 차이점 - HashTable 은 Key 값에 NULL을 허용하지 않지만, HashMap은 NULL을 허용한다. - HashTable 은 동기화를 처리하는 비용 때문에 HashMap에 비해 속도가 느리다.

면접 - 자바 2020.12.02

해시(Hash) 기본 개념과 구조

1. 해시(Hash) 정의 - 배열은 검색 속도가 빠르나 데이터 삽입/삭제 시 속도가 느립니다. - 링크드 리스트는 삽입 삭제시 인근 노드의 참조 값만 수정해서 속도가 빠르나 순회 검색만 가능하여 데이터가 많아질수록 속도가 느려집니다. - 이러한 한계를 극복하기 위해 제시된 방법이 해시(Hash)입니다. 2. 특징 - 내부적으로 배열을 사용하여 데이터를 저장하여 검색 속도가 빠릅니다. - 데이터의 삽입/삭제 시 해시 알고리즘을 이용하여 데이터와 연관된 고유한 숫자를 만들어 인덱스로 사용합니다. - 해시가 내부적으로 사용하는 배열을 Hash Table 이라고 하며 크기에 따라서 성능 차이가 납니다. 3. 해시 메서드(Hash Method) - 해시는 Hash Table을 사용하여 데이터를 저장합니다. - ..

개발 2020.08.13