Java Map의 초기용량을 설정해야 하는 이유

2023. 3. 1. 22:29·Programming/Java Spring
728x90
반응형

Map을 쓸 때 Map의 초기 용량을 설정하지 않으면 런타임 시동적으로 용량이 확장되어 성능에 영향을 미칩니다. 따라서 Map을 선언할 때 초기 용량을 설정하여 성능을 개선합니다.

 Map<Character, Integer> move = new HashMap<>(32);

HashMap은 내부적으로 배열을 사용하여 데이터를 저장하며, 이 배열의 크기를 동적으로 확장하거나 축소합니다. 배열의 크기를 동적으로 변경하는 것은 성능에 영향을 미치므로, 초기 용량을 충분히 설정하여 배열 크기를 자주 변경하지 않도록 합니다.

HashMap의 초기 용량을 설정하지 않으면 기본값인 16이 사용됩니다.

초기 용량은 저장할 데이터의 양에 따라 다르게 설정해야 하므로, 정확한 값은 실험적으로 결정해야 합니다.

일반적으로 대용량 데이터를 다룰 때, 초기 용량을 충분히 설정하여 성능을 최적화합니다.

예를 들어, 다음과 같은 상황에서 초기 용량을 설정해야 합니다.

  1. Map 또는 Set을 사용할 때: Map이나 Set을 사용할 때, 저장할 데이터의 양을 미리 예측할 수 있다면, 초기 용량을 충분히 크게 설정하여 데이터를 빠르게 저장할 수 있습니다.
  2. ArrayList 또는 HashSet을 사용할 때: ArrayList나 HashSet을 사용할 때도, 저장할 데이터의 양을 미리 예측할 수 있다면, 초기 용량을 충분히 크게 설정하여 데이터를 빠르게 저장할 수 있습니다.
  3. 배열을 사용할 때: 배열을 사용할 때도, 저장할 데이터의 양을 미리 예측할 수 있다면, 배열의 크기를 미리 설정하여 데이터를 빠르게 저장할 수 있습니다.

초기 용량을 충분히 설정하면, 배열이나 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
'Programming/Java Spring' 카테고리의 다른 글
  • Java의 Optional 클래스 자세히 알아보기
  • Java에서 거듭제곱 계산하기
  • 비주얼스튜디오 코드에서 Java Compile 하는 방법
  • [Java] 2차원 배열 정렬하기(Comparator, Lamda)
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      DevOps
      웹 개발
      소프트웨어 개발
      주식투자
      데이터 바인딩
      ES6
      Java
      데이터베이스 성능
      javascript
      투자전략
      rest api
      dynamicresource
      docker
      WPF
      데이터 파이프라인
      재테크
      Apache Kafka
      서버 관리
      클라우드 컴퓨팅
      자바스크립트 트릭
      Kubernetes
      투자
      XAML
      협업 도구
      java8
      클라우드 네이티브
      이슈 트래킹
      분산 메시징 시스템
      마이크로서비스
      C# WPF
    • 최근 댓글

    • 최근 글

    • 250x250
    이프로그
    Java Map의 초기용량을 설정해야 하는 이유
    상단으로

    티스토리툴바