728x90
자바 HashMap은 key-value 쌍으로 데이터를 저장하는 자료구조입니다. 각각의 key는 유일하며, 해당 key에 대한 value를 O(1)의 시간 복잡도로 검색하거나 삽입할 수 있습니다.
HashMap은 내부적으로 해시 테이블(Hash table)을 사용하여 데이터를 저장하므로, 검색 및 삽입에 걸리는 시간 복잡도는 O(1)입니다. 이는 매우 빠르며, 대용량 데이터를 다룰 때 유용합니다.
하지만, 데이터가 많아지면 해시 충돌(Hash Collision)이 발생할 가능성이 높아집니다. 이 경우, 검색 및 삽입 시간 복잡도는 O(n)으로 증가할 수 있습니다. 따라서 충돌을 최소화하는 해시 함수를 사용하거나, 충돌이 발생했을 때도 O(1)의 시간 복잡도를 유지하는 개선된 해시 테이블을 사용하는 등의 방법으로 충돌을 최소화해야 합니다. 또한, HashMap의 데이터 저장 순서는 보장되지 않으며, 순서를 보장해야 하는 경우 LinkedHashMap을 사용해야 합니다.
요약하자면, HashMap은 O(1)의 시간 복잡도를 가지며 대용량 데이터를 다룰 때 유용하지만, 충돌을 최소화해야 하며 데이터 저장 순서는 보장되지 않습니다.
728x90
'Programming > Java' 카테고리의 다른 글
[Java] 버전 크기를 비교하는 코드 만들기 (Semantic version) (0) | 2023.02.23 |
---|---|
map과 list 중 검색 속도가 빠른 것은? (0) | 2023.02.23 |
ConcurrentModificationException (0) | 2023.02.23 |
Checked Exception과 Unchecked Exception (0) | 2023.02.23 |
String, String Buffer, String Builder (0) | 2023.02.22 |