728x90
Iterator<E>
컬렉션 프레임워크는 컬렉션에 저장된 값을 읽어오는 방법은 Iterator 인터페이스로 표준화하고 있습니다.
Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 하고 있습니다.
따라서 Collection 인터페이스를 상속받는 List와 Set 인터페이스에서도 iterator() 메소드를 사용할 수 있습니다.
interator는 String()에서 봤던 Tokenizer와 비슷한 개념이라고 할 수 있습니다.
package com.test04;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
public class MTest01 {
public static void main(String[] args) {
LinkedList<Integer> lnkList = new LinkedList<Integer>();
lnkList.add(4);
lnkList.add(2);
lnkList.add(3);
lnkList.add(1);
Iterator<Integer> iter = lnkList.iterator();
while (iter.hasNext()) {
System.out.print(iter.next() + " ");
}
}
}
메소드 | 설명 |
boolean hasNext() | 해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함. |
E next() | 이터레이션(iteration)의 다음 요소를 반환함. |
default void remove() | 해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거함. (선택적 기능) |
ListIterator<E>
ListIterator 인터페이스는 Iterator 인터페이스를 상속받아 기능을 추가한 인터페이스입니다.
Iterator 인터페이스는 컬렉션의 값에 접근할 때 한 방향으로만 이동할 수 있습니다.
하지만 ListIterator 인터페이스는 컬렉션 값의 대체와 추가 그리고 인덱스 검색 등을 위한 작업에서 양방향으로 이동하는 것을 지원합니다.
단, ListIterator 인터페이스는 List 인터페이스를 구현한 List 컬렉션 클래스에서만 listIterator() 메소드를 통해 사용할 수 있습니다.
package com.test01;
import java.util.LinkedList;
import java.util.ListIterator;
public class MTest01 {
public static void main(String[] args) {
LinkedList<Integer> lnkList = new LinkedList<Integer>();
lnkList.add(4);
lnkList.add(2);
lnkList.add(3);
lnkList.add(1);
ListIterator<Integer> iter = lnkList.listIterator();
while (iter.hasNext()) {
System.out.print(iter.next() + " ");
}
while (iter.hasPrevious()) {
System.out.print(iter.previous() + " ");
}
}
}
메소드 | 설명 |
void add(E e) | 해당 리스트(list)에 전달된 요소를 추가함. (선택적 기능) |
boolean hasNext() | 이 리스트 반복자가 해당 리스트를 순방향으로 순회할 때 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함. |
boolean hasPrevious() | 이 리스트 반복자가 해당 리스트를 역방향으로 순회할 때 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함. |
E next() | 리스트의 다음 요소를 반환하고, 커서(cursor)의 위치를 순방향으로 이동시킴. |
int nextIndex() | 다음 next() 메소드를 호출하면 반환될 요소의 인덱스를 반환함. |
E previous() | 리스트의 이전 요소를 반환하고, 커서(cursor)의 위치를 역방향으로 이동시킴. |
int previousIndex() | 다음 previous() 메소드를 호출하면 반환될 요소의 인덱스를 반환함. |
void remove() | next()나 previous() 메소드에 의해 반환된 가장 마지막 요소를 리스트에서 제거함. (선택적 기능) |
void set(E e) | next()나 previous() 메소드에 의해 반환된 가장 마지막 요소를 전달된 객체로 대체함. (선택적 기능) |
728x90
'Java 관련 > Java' 카테고리의 다른 글
[Java] 예외 처리(Exception) (0) | 2021.11.18 |
---|---|
[Java] Comparable & Comparator (0) | 2021.11.17 |
[Java] Map Collection(맵) (0) | 2021.11.15 |
[Java] Set Collection(셋 컬렉션) (0) | 2021.11.14 |
[Java] List Collection(리스트 컬렉션) (0) | 2021.11.13 |