Closed okhee closed 1 year ago
for (Iterator<Element> i = c.iterator(); i.hasNext(); ) { Element e = i.next(); ..... }
for (int i = 0 ; i < a.length ; i++) { Element e = a.get(i); ..... }
while
for-each
for (Element e : elements) { ..... }
i.next()
NoSuchElementException
[suit : CLUB, rank : ACE, suit : CLUB, rank : DEUCE, suit : CLUB, rank : THREE, suit : CLUB, rank : FOUR, suit : CLUB, rank : FIVE, suit : CLUB, rank : SIX, suit : CLUB, rank : SEVEN, suit : CLUB, rank : EIGHT, suit : CLUB, rank : NINE, suit : CLUB, rank : TEN, suit : CLUB, rank : JACK, suit : CLUB, rank : QUEEN, suit : CLUB, rank : KING, suit : DIAMOND, rank : ACE, suit : DIAMOND, rank : DEUCE, suit : DIAMOND, rank : THREE, suit : DIAMOND, rank : FOUR, suit : DIAMOND, rank : FIVE, suit : DIAMOND, rank : SIX, suit : DIAMOND, rank : SEVEN, suit : DIAMOND, rank : EIGHT, suit : DIAMOND, rank : NINE, suit : DIAMOND, rank : TEN, suit : DIAMOND, rank : JACK, suit : DIAMOND, rank : QUEEN, suit : DIAMOND, rank : KING, suit : HEART, rank : ACE, suit : HEART, rank : DEUCE, suit : HEART, rank : THREE, suit : HEART, rank : FOUR, suit : HEART, rank : FIVE, suit : HEART, rank : SIX, suit : HEART, rank : SEVEN, suit : HEART, rank : EIGHT, suit : HEART, rank : NINE, suit : HEART, rank : TEN, suit : HEART, rank : JACK, suit : HEART, rank : QUEEN, suit : HEART, rank : KING, suit : SPADE, rank : ACE, suit : SPADE, rank : DEUCE, suit : SPADE, rank : THREE, suit : SPADE, rank : FOUR, suit : SPADE, rank : FIVE, suit : SPADE, rank : SIX, suit : SPADE, rank : SEVEN, suit : SPADE, rank : EIGHT, suit : SPADE, rank : NINE, suit : SPADE, rank : TEN, suit : SPADE, rank : JACK, suit : SPADE, rank : QUEEN, suit : SPADE, rank : KING]
removeIf
Iterable
전통적인 for 문과 비교했을 때 for-each문은 명로, 유연, 버그를 예방 성능저하도 없으니, 가능한 모든 곳에서 for-each문을 사용하자!
번외 ) Iterator Pattern 😁
item 58 : 전통적인 for문 보다는 for-each문을 사용하라
while
문 보다는 낫다! (item57)for-each
를 사용하면 모두 해결 가능!i.next()
NoSuchElementException
을 던진다.for-each
문을 중첩으로 간결하게for-each
를 사용하지 못하는 상황도 있다.removeIf
method를 사용해 컬렉션을 명시적으로 순회하는 일을 회피 가능for-each
문은 컬렉션, 배열은 물론Iterable
interface를 구현한 객체라면 순회가 다 가능마지막 정리
번외 ) Iterator Pattern 😁