Skip to content

아이템 58. 전통적인 for 문보다는 for-each문을 사용하라. #139

Answered by JoisFe
YuDeokRin asked this question in 3. 과제
Discussion options

You must be logged in to vote

자바의 Collection 타입 경우 구현체의 ArrayList와 같이 특정 인덱스에 접근할 수 있는 구현체도 있지만 그렇지 않은 경우도 있습니다.
이러한 경우 Iterator를 이용하거나 foreach를 활용하여 내부 값들을 조회해야 합니다.

for (Iterator<Suit> i = suits.iterator(); i.hasNext(); )
            for (Iterator<Rank> j = ranks.iterator(); j.hasNext(); )
                deck.add(new Card(i.next(), j.next()));
  • 덕린님께서 예시로 보여주신 해당 코드는 NoSuchElementException()이 발생합니다.

다만 Iterator의 haNext와 next 이용해서도 모든 카드의 조합을 위 같은 에러가 발생하지 않고 작성할 수 있습니다.

for (Iterator<Suit> i = suits.iterator(); i.hasNext();) {
            Suit nextSuit = i.next();

            for (Iterator<Rank> j = ranks.iterator(); j.hasNext();) {
                deck.add(new Card(nextSuit, j.next()));
            }
        }

하…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by YuDeokRin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
9장 일반적인 프로그래밍 원칙 이펙티브 자바 9장 (일반적인 프로그래밍 원칙)
2 participants