> Java > java지도 시간 > 다양한 버전 호환성을 고려하여 Java에서 HashMap을 효율적으로 초기화하려면 어떻게 해야 합니까?

다양한 버전 호환성을 고려하여 Java에서 HashMap을 효율적으로 초기화하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-09 08:28:10
원래의
666명이 탐색했습니다.

How Can I Efficiently Initialize HashMaps in Java, Considering Different Version Compatibility?

HashMap 직접 초기화: 리터럴 접근 방식

배경

HashMap을 생성하려면 키-값 쌍을 수동으로 추가해야 할 수 있습니다. 이 프로세스는 시간이 많이 걸리고 오류가 발생하기 쉽습니다. 당연히 개발자는 보다 간소화된 접근 방식을 추구합니다.

Java 9 이상

Java 9 이상의 경우 다음 팩토리 메소드가 맵 생성을 단순화합니다.

Map.of("a", "b", "c", "d"); // Up to 10 elements
Map.ofEntries(entry("a", "b"), entry("c", "d")); // Any number of elements
로그인 후 복사

이러한 메소드는 불변의 지도. 변경 가능한 맵의 경우 복사하세요.

Map mutableMap = new HashMap<>(Map.of("a", "b"));
로그인 후 복사

Java 8 이하

Java 9 이전에는 직접 초기화가 불가능합니다. 그러나 대안도 있습니다:

익명 하위 클래스(주의 사항 포함)

Map myMap = new HashMap<String, String>() {{
    put("a", "b");
    put("c", "d");
}};
로그인 후 복사

주의 사항:

  • 추가 클래스를 도입하여 증가합니다. 리소스 소비.
  • 외부 클래스 객체에 대한 참조를 보유합니다. 가비지 수집 방지.

초기화 기능

익명 하위 클래스의 경고를 피하는 보다 강력한 접근 방식:

Map myMap = createMap();

private static Map<String, String> createMap() {
    Map<String, String> myMap = new HashMap<>();
    myMap.put("a", "b");
    myMap.put("c", "d");
    return myMap;
}
로그인 후 복사

결론

Map.of 및 Map.ofEntries와 같은 팩토리 메소드를 사용하는 Java 9는 초기화를 위한 가장 직접적이고 효율적인 방법을 제공합니다. 해시맵. 그러나 Java 8 이하의 경우 초기화 함수 접근 방식은 익명 하위 클래스의 함정을 피하는 대안을 제공합니다.

위 내용은 다양한 버전 호환성을 고려하여 Java에서 HashMap을 효율적으로 초기화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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