본문 바로가기
프로그램 개발(분석, 설계, 코딩, 배포)/2.2.1 java

java Map<String, Object>

by 3604 2025. 6. 19.
728x90
 
 
java 코드에서 "Map<String, Object> ecmFiles = new HashMap<>();" 과 "Map<String, Object> ecmFiles = new HashMap<String, Object>();" 차이점은?

Java 코드에서 Map<String, Object> ecmFiles = new HashMap<>();와 Map<String, Object> ecmFiles = new HashMap<String, Object>();의 차이는 주로 제네릭 타입의 사용 코드의 간결성에 있습니다.

차이점 설명

  1. 제네릭 타입의 생략:
    • Map<String, Object> ecmFiles = new HashMap<>();는 Java 7부터 도입된 다이아몬드 연산자(<>)를 사용하여, 오른쪽의 HashMap 생성자에서 타입 매개변수를 생략할 수 있습니다. 컴파일러는 왼쪽의 타입 선언을 기반으로 자동으로 타입을 추론합니다.
    • 반면, Map<String, Object> ecmFiles = new HashMap<String, Object>();는 타입 매개변수를 명시적으로 지정하는 방식입니다. 이 경우, HashMap의 타입이 명확하게 드러나지만, 코드가 다소 길어질 수 있습니다.
  2. 코드의 가독성:
    • 다이아몬드 연산자를 사용하면 코드가 더 간결해지고 가독성이 향상됩니다. 특히, 복잡한 제네릭 타입을 사용할 때 유용합니다.
    • 명시적인 타입 선언은 코드의 명확성을 높일 수 있지만, 불필요하게 길어질 수 있습니다.

결론

두 코드 모두 동일한 기능을 수행하며, HashMap의 인스턴스를 생성하여 Map 인터페이스를 구현합니다. 따라서 어떤 방식을 선택하든 기능적으로는 차이가 없습니다. 다만, 최신 Java 버전에서는 다이아몬드 연산자를 사용하는 것이 더 권장됩니다. 이는 코드의 간결성과 가독성을 높이는 데 도움이 됩니다

728x90