https://github.com/BanditBool2/ReadingRecord/issues/5
외부 반복 : Iterator와 같이 사용자가 직접 별도의 객체를 생성하여 명시적으로 컬렉션의 각 요소를 가져와 처리하는 방식. 개발자가 반복의 처음과 끝을 제어할 수 있다.
내부 반복 : Stream과 같이 개발자가 직접 반복을 제어하지 않고 컬렉션 내부적으로 반복을 처리. 사용자는 각 요소에 대한 처리 로직에만 집중할 수 있으며 코드의 가독성을 높인다.
다음과 같은 컬렉션이 있을 때,
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
해당 컬렉션의 모든 요소를 출력하는 함수를 외부 반복과 내부 반복으로 표현하면 다음과 같다.
//외부 반복
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
int num = iterator.next();
System.out.print(num + " ");
}
//내부 반복
list.stream().forEach(num -> System.out.print(num + " "));
도움주신 분: hanbonghun