강의

멘토링

로드맵

Inflearn brand logo image

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

김예린님의 프로필 이미지
김예린

작성한 질문수

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

해시 알고리즘6 - 해시 충돌 구현

해시 알고리즘 9 - 해시 충돌 구현의 마지막 코드 도식화

작성

·

113

0

IMG_AC73AC9FF594-1.jpeg

안녕하세요! 제가 이해하고 있는 부분이 맞는지 궁금합니다.
LinkedList<Integer>[ ] buckets = new LinkedList<>[ ] 를 하면, LinkedList<Integer> 타입을 갖을 수 있는 배열이 생성되고, buckets[0] , buckets[1] .. .. 처럼 인덱스 번호를 이용해서 접근가능합니다.

여기서 궁금한점은 LinkedList<Integer> 타입으로 구성된 각 배열들은 LinkedList<Integer>의 인스턴스가 생성된것이 아니라, 단지 LinkedList<Integer>의 타입을 갖을 수 있는 참조 변수 인건가요??

 

그 후에 각 참조변수 안에서 new LinkedList<>의 코드를 사용해서, LinkedList<>의 인스턴스가 생성되어 연결된것인가요??

그렇기 때문에, add 메소드에서, buckets[1].add와 같은 문장이 생성될 수 있었는지 여쭤보고싶습니다.


답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
김예린님이 이해하신 부분이 맞습니다.

LinkedList<Integer>[] buckets = new LinkedList<>[ ]LinkedList<Integer> 타입을 가질 수 있는 배열을 생성합니다. 이 배열은 buckets[0], buckets[1] 등 인덱스 번호를 통해 접근이 가능합니다.

질문하신 것처럼, 이 배열은 LinkedList<Integer>의 인스턴스가 바로 생성된 것이 아니라, LinkedList<Integer> 타입을 가질 수 있는 참조 변수를 가집니다.

각 참조 변수에 대해 new LinkedList<>() 코드를 실행하면, 실제로 LinkedList<>의 인스턴스가 생성되어 해당 참조 변수에 연결됩니다. 따라서 buckets[1].add와 같은 문장을 사용하여 LinkedList<>의 인스턴스에 요소를 추가할 수 있게 됩니다.

더 자세한 내용은 참고하신 자료나 공식 문서를 확인하시면 도움이 될 것입니다.

정보 출처: Spring Boot Reference Documentation v3.1.5

김예린님의 프로필 이미지
김예린

작성한 질문수

질문하기