반복을 위해 강화해 후에 J2SE 1.5.x aka J5SE로, 나 그것을 사용하기 위하여 만들었다 그것에게 쾌적한 습관을 소개되었다. 당신은 나가 에 대해서 이야기하고 있는 무슨을, 바르게 알고 있는가?

예를 들면 이전에 나는 썼었다:


개인적인 gbWay () {
    ….
    를 위해 (Iterator I = countries.iterator (); i.hasNext ();) {
        국가 c = i.next ();
        만약에 (! c.isCrony ()) c.attack ();
    }
    ….
}

지금 나는 쓴다:


개인적인 gbWay () {
    ….
    를 위해 (국가 c: 국가) {
        만약에 (! c.isCrony ()) c.attack ();
    }
    ….
}

그것은 더 간단하지 않은가? 확실히.

그러나 이 아름다움은 어디에나 작동하지 않는다. 첫째로 당신은 당신이 Iterator 자체에 같이 접근할 필요가 있으면 경우에 그것을 사용할 수 없다:


를 위해 (Iterator c = countries.iterator (); i.hasNext (); )
    만약에 (! c.next () .isCrony ()) {
        c.remove ();
    }
}

당신은 또한 당신이 당신이 반복하고 있는 수집에 성분을 추가하골 싶을 때 그것을 사용할 수 없다. 실제로 당신은 Iterator를 또한 사용할 수 없다. 당신은 당신 하는 그것을 어떻게 하고자 한지 짐작할 수 있는가?