>Java >java지도 시간 >Java에서 HashMap을 효율적으로 초기화하려면 어떻게 해야 합니까?

Java에서 HashMap을 효율적으로 초기화하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-25 13:52:13758검색

How Can I Initialize a HashMap in Java Efficiently?

HashMap 리터럴 초기화

간결하고 리터럴 방식으로 특정 키-값 쌍을 사용하여 Java HashMap을 초기화하는 것은 개발자에게 어려운 기능이었습니다. 그러나 Java의 발전으로 단순화된 지도 생성이 가능해졌습니다.

Java 9 이상: 팩토리 메서드

Java 버전 9부터 Map 클래스에는 지도 생성을 간소화하는 팩토리 메서드가 도입되었습니다.

  • Map.of: 최대로 지도를 만들 수 있습니다. 간결한 구문을 사용하여 최대 10개 요소:

    Map<String, String> test1 = Map.of("a", "b", "c", "d");
  • Map.ofEntries: 원하는 개수의 요소로 지도를 생성합니다.

    import static java.util.Map.entry;
    
    Map<String, String> test2 = Map.ofEntries(
      entry("a", "b"),
      entry("c", "d")
    );

그러나 이러한 방법을 사용하면 불변의 결과가 발생한다는 점에 유의하는 것이 중요합니다. 지도. 변경 가능한 맵의 경우 다음을 사용하여 복사본을 생성할 수 있습니다.

mutableMap = new HashMap<>(Map.of("a", "b"));

Java 8 이하: 익명 클래스 또는 함수

Java 9 이전에는 직접 리터럴 초기화가 지원되지 않았습니다. 유사한 효과를 얻으려면 다음 기술을 사용할 수 있습니다.

  • 이니셜라이저가 있는 익명 클래스: 생성자에서 맵을 초기화하는 익명 하위 클래스를 정의합니다.

    Map<String, String> myMap = new HashMap<String, String>() {{
      put("a", "b");
      put("c", "d");
    }};
  • 기능 초기화: 맵을 생성하고 이를 초기화 프로그램에서 사용하는 함수를 만듭니다.

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

후자 접근 방식이 더 깔끔하며 익명 하위 클래스와 관련된 잠재적인 위험을 방지합니다.

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

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