자바의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화 한다. Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하게 한다. 따라서 Collection 인터페이스를 상속받는 List와 Set 인터페이스에서도 iterator() 메소드를 사용할 수 있다.
반복자를 사용하는 방법에는 크게 두가지로 나뉜다.
① 외부에서 사용하는 방법
lterator<type> 이름 = 반복할객체이름. iterator();
Iterator <타입명> 을 작성 후 해당 반복자의 이름을 지정해주고 반복할 대상의 이름 . iterator(); 으로 마무리 해준다.
Iterator 인터페이스는 다음과 같은 메소드를 사용하여 컬렉션의 각 요소에 접근할 수 있다.
메소드 | 설명 |
boolean hasNext() | 해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함. |
E next() | 이터레이션(iteration)의 다음 요소를 반환함. |
default void remove() | 해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거함. (선택적 기능) |
import java.util.ArrayList;
import java.util.Iterator;
public class 반복자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//반복자를 외부에서 사용
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String s = iter.next();
System.out.println(s);
}
② 내부에서 사용하는 방법
for - (each) 사용 : (자바에서 권장하는 방식)
for-each 반복문은 컬렉션(collection)이나 배열(array) 등의 요소들을 순회하는 데 사용되는 특별한 형태의 반복문이다.
for (type variable : collection)의 형식으로 작성한다. 여기서 type은 컬렉션의 요소(element)의 자료형(type)을 나타내고, variable은 각 요소에 대해 사용되는 변수 이름(variable name)이며, collection은 반복문이 적용될 컬렉션을 나타낸다.
import java.util.ArrayList;
import java.util.Iterator;
public class 반복자 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//반복자를 내부에서 사용하는 법
for (String s : list) {
// for( 요소타입 변수명 : 리스트명){변수로 원하는 작업}
System.out.println(s);
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] == 과 equals( ) 메서드 차이 (0) | 2023.03.08 |
---|---|
[JAVA] Map 컬렉션 클래스 (0) | 2023.03.07 |
[JAVA] 컬렉션 프레임워크 - ArrayList (0) | 2023.03.07 |
[JAVA] 컬렉션 프레임워크 (collection framework) (0) | 2023.03.06 |
[JAVA] lang package - warpper class (0) | 2023.03.04 |