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

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

DDD
DDD원래의
2024-12-09 08:28:10685검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.