728x90
반응형
Map을 쓸 때 Map의 초기 용량을 설정하지 않으면 런타임 시동적으로 용량이 확장되어 성능에 영향을 미칩니다. 따라서 Map을 선언할 때 초기 용량을 설정하여 성능을 개선합니다.
Map<Character, Integer> move = new HashMap<>(32);
HashMap은 내부적으로 배열을 사용하여 데이터를 저장하며, 이 배열의 크기를 동적으로 확장하거나 축소합니다. 배열의 크기를 동적으로 변경하는 것은 성능에 영향을 미치므로, 초기 용량을 충분히 설정하여 배열 크기를 자주 변경하지 않도록 합니다.
HashMap의 초기 용량을 설정하지 않으면 기본값인 16이 사용됩니다.
초기 용량은 저장할 데이터의 양에 따라 다르게 설정해야 하므로, 정확한 값은 실험적으로 결정해야 합니다.
일반적으로 대용량 데이터를 다룰 때, 초기 용량을 충분히 설정하여 성능을 최적화합니다.
예를 들어, 다음과 같은 상황에서 초기 용량을 설정해야 합니다.
- Map 또는 Set을 사용할 때: Map이나 Set을 사용할 때, 저장할 데이터의 양을 미리 예측할 수 있다면, 초기 용량을 충분히 크게 설정하여 데이터를 빠르게 저장할 수 있습니다.
- ArrayList 또는 HashSet을 사용할 때: ArrayList나 HashSet을 사용할 때도, 저장할 데이터의 양을 미리 예측할 수 있다면, 초기 용량을 충분히 크게 설정하여 데이터를 빠르게 저장할 수 있습니다.
- 배열을 사용할 때: 배열을 사용할 때도, 저장할 데이터의 양을 미리 예측할 수 있다면, 배열의 크기를 미리 설정하여 데이터를 빠르게 저장할 수 있습니다.
초기 용량을 충분히 설정하면, 배열이나 Map 등의 내부적인 데이터 구조가 데이터를 저장하는 과정에서 배열 크기를 동적으로 변경할 필요가 없어지므로, 성능이 개선됩니다.
728x90
반응형
'Programming > Java Spring' 카테고리의 다른 글
Java의 Optional 클래스 자세히 알아보기 (0) | 2024.07.07 |
---|---|
Java에서 거듭제곱 계산하기 (0) | 2024.07.05 |
비주얼스튜디오 코드에서 Java Compile 하는 방법 (0) | 2022.08.11 |
[Java] 2차원 배열 정렬하기(Comparator, Lamda) (0) | 2022.02.14 |
[Java] Integer List int 배열로 변환하는 방법 (0) | 2022.01.25 |