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