ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 학원 day68. Map 정복
    기록 2022. 12. 9. 23:23

    컬렉션 클래스의 객체를 만들 때 list, set, map 같은 인터페이스 타입으로 참조하는데 컬렉션 클래스로 하지 않고

    인터페이스로 참조하는 이유가 따로 있는지?

     

    Set set = new TreeSet(); 보통 이런식으로 컬렉션 클래스의 객체를 만들고 참조하는데 비해

    TreeSet set = new TreeSet(); 이렇게는 잘 안하는데 왜 그런것일까?

     

    // HashMap 객체를 반환하는 메소드

    public HashMap<String, Object> getUserInfo() {

          return HashMap 객체를 반환해야 한다.

    }

     

    // Map 객체를 반환하는 메소드

    public Map<String, Object> getUserInfo() {

         return 모든 Map의 하위 객체를 반환할 수 있다.

    }

     

    // 매개변수를 Map으로 하는 메소드

    public List<Employee> getEmployees(Map<String, Object> map) {

    }

    public List<Employee> getEmployees(HashMap<String, Object> map) {

    }

     

    Map<String, Object> x = new HashMap<>();

    Map<String, Object> x = new HashTable<>();

    TreeMap<String, Object> x = new TreeMap<>();

     

    HashMap은 클래스이고 Map은 인터페이스이다.

    Map을 구현한게 HashMap이다.

     

    매개변수나 반환타입이 부모타입인 경우가 관례적임.

    returnHashMap인지 TreeMap인지가 중요한게 아니다.

    key, value 쌍으로 담겨있는 값이라는게 중요한 것이다.

    그래서 Map객체라는게 더 중요한 의미를 가진다.

    변수의 타입은 종종 Map타입으로 하고 실제로 구현하는 건 HashMap처럼 구체적으로 적는 관례가 있다.

    자식 객체를 부모 타입의 변수안에 담아놓고 쓰는 것이다.

    '기록' 카테고리의 다른 글

    학원 day70. 회원가입  (0) 2022.12.13
    학원 day69.  (0) 2022.12.12
    학원 day67. 싱글턴 정복중....  (0) 2022.12.08
    학원 day66. github  (0) 2022.12.07
    학원 day65. Git  (0) 2022.12.06

    댓글

Designed by Tistory.