강의

멘토링

로드맵

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

윾민님의 프로필 이미지
윾민

작성한 질문수

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

정렬3 - Comparable, Comparator

List인터페이스를 sout 할때 질문입니다.

작성

·

270

0

링크드리스트의 list를 그냥 System.out.println(list); 했을때, 아래의 내용이 맞는지 궁금합니다.

LinkedListtoString 메서드는 AbstractCollection 클래스에서 오버라이딩된 toString 메서드를 상속받아 사용합니다.

퀴즈

61%나 틀려요. 한번 도전해보세요!

Iterable과 Iterator는 컬렉션 순회를 위해 함께 사용돼요. 각자의 역할은 무엇인가요?

Iterable: 데이터 저장소, Iterator: 데이터 접근

Iterable: 순회 가능 상태 부여, Iterator: 실제 순회 방법 제공

Iterable: 다음 요소 확인, Iterator: 요소 반환 후 이동

Iterable: 정렬 기준 정의, Iterator: 요소 검색

답변 1

1

저도 질문글 보니 궁금해서 디버깅하면서 뒤져봤네요.

결론적으로는 AbstractCollection 클래스의 의 toString 메서드를 사용하는게 맞습니다.

List<String> list = new LinkedList<>();
list.add("data1");
System.out.println("list = " + list);
  1. list를 문자열로 반환하기 위해서 String class의 valueOf 실행.

  2. 여기서 Object의 toString 메서드 실행.

  3. toString 실행 시, 해당 Object의 오버라이딩 된 toString, AbstractCollection.toString 실행

이런 순서로 이뤄지는걸로 확인하였습니다.

윾민님의 프로필 이미지
윾민

작성한 질문수

질문하기