인프런 커뮤니티 질문&답변

oniic님의 프로필 이미지
oniic

작성한 질문수

김영한의 실전 자바 - 중급 2편

HashMap .values() 메서드

해결된 질문

작성

·

102

·

수정됨

1

안녕하세요. HashMap에서 values 메서드는 인터페이스를 반환하는데 Collection 인터페이스를 익명으로 구현 후 반환하나요? 아님 인터페이스 하위에 있는 구현 객체를 생성 후 반환하나요? 아님 크게 중요하지 않는 것인지,,

HashMap에서 values 메서드를 보니 아래와 같이 되어 있더라고요.

public Collection<V> values() {
    Collection<V> vs = values;
    if (vs == null) {
        vs = new Values();
        values = vs;
    }
    return vs;
}

 

감사합니다.

답변 1

1

안녕하세요. oniic님, 공식 서포터즈 David입니다.

이 부분은 직접 테스트 해보시면 바로 알 수 있습니다.

new Values()를 통해 HashMap의 values() 바로 아래에 작성되어 있는 final class Values extends AbstractCollection<V> 클래스의 객체가 생성되어 반환됩니다.

감사합니다.

oniic님의 프로필 이미지
oniic

작성한 질문수

질문하기