Programming Languages/Java

[JAVA/자료구조] Iterator와 반복문 / 자바에서 Iterator 사용하기

Hannana. 2023. 5. 28. 13:53
728x90
반응형

오늘은 자바의 Iterator의 개념과 장/단점을 알아보려고 한다.

 

 

먼저, Iterator가 무엇을 말하는지 살펴보자.

 

 

1. 개념

JAVA Iterator란?
: 컬렉션 프레임워크(Collection Framework)에 저장된 데이터를 순회하는 인터페이스이다.
컬렉션 프레임워크는 List, Set, Map, Queue, ArrayList, Stack, LinkedList 등을 뜻한다.

 

2. 의의

-우리가 쓰는 웬만한 자료구조의 상위 개념에 속하는 인터페이스로, 

Iterator 문법 하나로 자료 구조의 일반적인 순회가 가능하다.

 

 

3. 대표 메소드

.hasNext() //다음 요소가 있는지 확인, return값 true/false
.next() //다음 요소 호출
.remove() //요소 삭제

선언은 Iterator<T> iterator = Collection.iterator(); 형태로 할 수 있으며

위와 같은 세 개의 메소드로 간단히 사용이 가능하다.

 

 

 

 

4. 사용 예시

Iterator<Integer> iter = list.iterator();
        
        while(iter.hasNext()) {
            int n = iter.next();
            System.out.print(n);
        }

 

Iterator에는 자료형 표기가 가능하다. 해당 예시에서는 Integer 자료형의 Iterator를 선언해

사전에 정의 된 list 를 할당해주었다.

할당 및 초기화를 마친 Iterator는 while문을 통해 .next() 를 거쳐 순회가 가능하며

다음 데이터가 없을 시 순회를 마치게 된다.

 

 

 

 

5. 한계와 또 다른 방법

Iterator의 사용이 간단하다고 해서 성능이 아주 좋아지는 것은 아니다.

Iterator를 선언하고, 순회하는 과정이 생각보다 시간이 걸리기 때문.

그럴 땐 기존 for문에 Generics를 적용한 방법을 사용하면 좋다.

 

 

[기존 for문]

int arr[10];
for(int i=0;i<arr.length;i++){
	//for(초기값; 조건; 증감;
}

 

 

[Generics 적용한 for문]

List<Integer> list = new ArrayList();
.
.
.
for(Integer i : list) {
	System.out.println(i);
}

 

 

 

반응형