(JAVA)hasNext() vs next() 메서드 차이점?

Jakezo·2021년 9월 5일
0

Java

목록 보기
6/9
post-custom-banner

정의

Iterator 인터페이스의 메서드로 자주 사용됩니다. Iterator에 추가적인 요소가 있을 때 가져오는 역할을 하는데요.

단순히 영어만 보면 조금 헷갈립니다. hasNext는 "뭔가 다음에 있으면 가져오는 것 같고", next는? "이것도 다음에 있으면 가져오는 것 아니야?"라고 생각할 수 있습니다.


다른 점

결정적으로 다른 점은 반환 타입 입니다.

hasNext()는 boolean 타입으로 반환됩니다. 즉 "True or False"로 반환됩니다. 다음에 가져올 값이 있으면 True, 없으면 False입니다.

하지만 next()는 "매개변수 혹은 iterator 되는 타입"으로 반환됩니다.  아무 타입으로 반환할 수 있습니다. Iterator에 입력된 값들이 String이면 String 값으로 가져오는 것입니다.

만약에 1,2,3,4,5 라는 숫자들이 저장되어 있는 배열을 Iterator 인터페이스로 가지고 올 때. hasNext()는 "True or False"를 나타내겠지만, next()는 "숫자 값"들을 가지고 옵니다.


결론

hasNext()

  • boolean 타입 반환
  • True or False

next()

  • iterator의 다음 요소 값 반환
  • 즉 아무 타입 가능
profile
탐험가
post-custom-banner

0개의 댓글