> Java > java지도 시간 > Java에서 정적 지도를 가장 잘 초기화하는 방법은 무엇입니까?

Java에서 정적 지도를 가장 잘 초기화하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-06 15:48:22
원래의
490명이 탐색했습니다.

How to Best Initialize Static Maps in Java?

Java에서 정적 맵 초기화: 옵션 및 고려 사항

정적 맵은 클래스 내에 키-값 쌍을 저장하는 편리한 방법을 제공합니다. 정적 맵 초기화와 관련하여 Java는 정적 초기화 프로그램과 인스턴스 초기화 프로그램(익명 하위 클래스 사용)이라는 두 가지 주요 방법을 제공합니다.

정적 초기화 프로그램

정적 초기화 프로그램 초기화 구문을 사용하면 예제에서 볼 수 있듯이 맵을 정의하고 정적 블록 내에 해당 값을 채울 수 있습니다. 아래:

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

이 방법은 간단하며 추가 클래스나 구문 설탕이 필요하지 않습니다. 그러나 초기화 후 맵에 대한 모든 수정 사항은 정적 버전에 반영되지 않습니다.

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

인스턴스 초기화 프로그램은 반면에 익명 하위 클래스를 사용하여 지도를 초기화합니다.

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

이 접근 방식은 간결하고 간결한 지도를 초기화하는 구문입니다. 그러나 이는 특히 심하게 중첩된 인스턴스에서 성능에 잠재적으로 영향을 미칠 수 있는 익명 하위 클래스를 생성합니다.

고려 사항

  • 인스턴스 초기화 옵션은 드물게 사용해야 합니다. 성능 문제를 고려하세요.
  • 두 방법 모두 기본적으로 변경 가능한 맵을 생성합니다. 불변 지도를 생성하려면 Java의 Collections.unmodifyingMap() 메소드를 사용할 수 있습니다.
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
로그인 후 복사

어떤 메소드를 선택해야 합니까?

정적 및 인스턴스 초기화 프로그램은 특정 사용 사례에 따라 다릅니다.

  • 간단하고 효율적인 경우 초기화하는 경우 정적 초기화를 권장합니다.
  • 성능이 중요한 매우 크거나 복잡한 맵의 경우 정적 초기화가 선호됩니다.
  • 불변성을 원하는 경우 컬렉션이 있는 정적 초기화를 사용하세요. unmodifyingMap()을 사용할 수 있습니다.

위 내용은 Java에서 정적 지도를 가장 잘 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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