프레임워크/Spring Boot

[JAVA] Iterator & Foreach

김꿍디꿍디 2024. 5. 10. 16:50
반응형

 

 

ArrayList 

    
        ArrayList<String> sportStarts = new ArrayList<>();
        sportStarts.add("김연아");
        sportStarts.add("박태환");
        sportStarts.add("손흥민");
        sportStarts.add("이강인");
        sportStarts.add("김송아");

 

이런 리스트 객체가 있을 때 리스트 내 모든 요소를 출력하는 방법은 아래와 같다. 

순수 for문

        for(int i=0; i<sportStarts.size(); i++) {
            System.out.println(sportStarts.get(i));
        }

단점

  • HashMap의 경우 index로 접근할 수 없다.

Iterator

인덱스 없이 모두가 사용할 수 있는 방법

        Iterator<String> sportsStartIterator = sportStarts.iterator();
        while(sportsStartIterator.hasNext()) {
            System.out.println(sportsStartIterator.next());
        }

단점

  • 새롭게 Iterator 객체 생성을 해줘야 한다.
  • 커서(hasNext)가 있고 없고를 신경써줘야 한다.
  •  

Foreach

for + iterator

        for (String sportStar : sportStarts) {
            System.out.println(sportStar);
        }

 

단점

  • 무조건 처음부터 끝까지 다꺼낸다.

 

 

반응형