Java & Kotlin

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

페페로니피자 2020. 5. 18. 20:37
반응형

정의

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의 다음 요소 값 반환
  • 즉 아무 타입 가능

 

Java11 API

 

반응형