더북(TheBook)

처음에는 다소 어색해 보이는 문법이지만 얼마나 편리한지 곧 깨닫게 됩니다. “checks 내 각 check에 대해 아래를 수행하시오”처럼 읽으세요. 예제에서는 컬렉션 내 항목에 접근하는 지역 변수인 String check를 정의한 후 이어서 콜론과 순회할 자료 구조인 checks를 넣었습니다.

매 반복마다 자바는 자료 구조에서 새로운 객체를 가져와 check에 할당합니다. 반복 인덱스를 더 이상 다루지 않아도 됩니다! 심지어 배열과 Set처럼 인덱싱되지 않은 컬렉션에도 동작합니다.

일반적으로 위 문법으로 순회합니다. 항상 컬렉션 내 각 원소를 처리하고 반복 상태(문제가 되었던 인덱스 i)도 조작할 수 없거든요. 변수명 명명 규칙이 for(타입 단수명 : 복수명) 형태임을 기억하세요.

또 다른 순회 메커니즘은 2.4 순회하며 컬렉션 수정하지 않기에서처럼 반복자(iterator)를 사용하는 방법입니다.

그렇다면 인덱스로 순회하는 전통적인 방식은 언제 쓰는 것이 적절한지 궁금하지 않나요? 정답은 “거의 없다”입니다. 대부분 자료 구조 내 각 원소만 처리하고 싶거든요.

만약 그렇다면 인덱스 처리를 어떻게 구현했는지 자세히 알 필요가 없습니다. 인덱스 기반 순회가 적절한 드문 경우는 컬렉션의 특정 부분만 순회하거나 명시적으로 다른 목적을 위해 인덱스가 필요할 때뿐입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.