이전 포스팅과 연결됩니다..!
https://bdisappointed.tistory.com/64
지난번 포스팅에서는 Iterable과 Iterator를 직접 구현해보았다.
근데 그래서 우리가 인텔리제이에서 쓰는 iter, 즉 향상된 for 문이랑 이게 머선 상관인데?
향상된 for문 (for- each 문)
지난 포스팅에서 작성했던 코드에 for - each 문을 살짝쿵 추가해보자
public class MyArrayMain {
public static void main(String[] args) {
MyArray myArray = new MyArray(new int[]{1, 2, 3, 4});
Iterator<Integer> iterator = myArray.iterator();
System.out.println("iterator 사용");
while (iterator.hasNext()) {
Integer value = iterator.next();
System.out.println("value = " + value);
}
//여기에 코드 추가
System.out.println("for-each 사용");
for (Integer value : myArray) {
System.out.println("value = " + value);
}
}
}
실행 결과는 아래와 같다
자, 여기서 하고 싶은 말은,
for-each문은 배열과 같은 자료구조를 순회하는 것이 가장 주된 목적이다.
그래서 자바는 Iterable 인터페이스를 구현한 객체에 대해서 for-each문을 사용할 수 있도록 제공해준다
우리는 이전에 MyArray라는 직접 만든 자료구조를 Iterable 인터페이스의 구현체로 만들어둔 덕분에, 편하게 배열을 순회 할 수 있는 것이었다!
정리 = Iterable의 구현체만 for-each문 사용 가능하다
즉 for-each문을 사용하면 컴파일러가 컴파일 시점에
이 코드로 변환하여 해석한뒤, 로직을 수행한다. 즉 위에서 활용했던 두 코드는 서로 같은 기능을 하는 코드이다.
여전히 중요한 개념은,
Iterable 해야, Iterator을 사용할 수 있다
를 다시 한번 마음에 깨닫길 바란다!
다음 포스팅은 Java가 제공하는 Iterable과 Iterator에 대해 포스팅하고 다음 개념으로 넘어가야겠다!
아직 포스팅 해야할게 산더미인데.. 언제나 포스팅이 최종 복습이다 생각하고 최선을 다하자!
아자 아자 화이자!
'Java > Collections' 카테고리의 다른 글
[Java] 컬렉션 - Array (배열) / 전,중,후 데이터 삽입 (2) | 2024.11.15 |
---|---|
[Java] 컬렉션 - Iterable, Iterator 직접 구현해보기 (1) (3) | 2024.10.26 |