> Java > java지도 시간 > Java에서 정적 맵을 초기화하는 방법: 정적 이니셜라이저와 인스턴스 이니셜라이저?

Java에서 정적 맵을 초기화하는 방법: 정적 이니셜라이저와 인스턴스 이니셜라이저?

DDD
풀어 주다: 2024-12-03 12:08:16
원래의
550명이 탐색했습니다.

How to Initialize a Static Map in Java: Static Initializers vs. Instance Initializers?

Java에서 정적 맵 초기화

Java에서 정적 맵을 초기화하려면 정적 이니셜라이저와 인스턴스 이니셜라이저라는 두 가지 주요 접근 방식이 필요합니다.

정적 초기화 프로그램:

정적 초기화 프로그램을 사용하면 클래스 정의 내에서 직접 맵을 초기화할 수 있습니다. 이는 다음 예와 같이 정적 블록을 사용하여 달성됩니다.

public class Test {
    private static final Map<Integer, String> myMap = new HashMap<>();

    static {
        myMap.put(1, "one");
        myMap.put(2, "two");
    }
}
로그인 후 복사

장점:

  • 간결한 구문
  • 초기화 수업 로딩 시간에 발생
  • 지도는 최종 지도이므로 한 번 수정할 수 없습니다. 설정

단점:

  • 불변 지도에는 적합하지 않음
  • 읽고 유지 관리가 어려울 수 있음

인스턴스 초기화 프로그램(익명) 하위 클래스):

인스턴스 초기화 프로그램은 정적 멤버 초기화를 위한 대체 구문을 제공합니다. 이 접근 방식은 기본 생성자를 재정의하는 익명 하위 클래스를 사용합니다.

public class Test {
    private static final Map<Integer, String> myMap2 = new HashMap<>() {
        {
            put(1, "one");
            put(2, "two");
        }
    };
}
로그인 후 복사

장점:

  • 정적 초기화에 대한 구문 설탕
  • 할 수 있습니다. 불변성을 생성하는 데 사용됩니다. 지도

단점:

  • 추가 익명 클래스 필요
  • 최종 클래스와 호환되지 않음

추가 참고:

  • 인스턴스 초기화 접근 방식은 정적 초기화에 대한 구문적 설탕으로 간주됩니다.
  • 불변 맵은 먼저 가변 맵을 생성한 다음 정적 초기화를 사용하여 생성할 수 있습니다. Collections.unmodifyingMap() 메서드를 사용하여 수정할 수 없도록 만듭니다.

위 내용은 Java에서 정적 맵을 초기화하는 방법: 정적 이니셜라이저와 인스턴스 이니셜라이저?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿