1.5 lterator, Listlterator, Enumeration
lterator, Listlterator, Enumeration 모두 컬렉션에 저장된 요소를 접근하는데 사용하는 인터페이스 이다.
Enumeration은 Iterator의 구버전이다. ListIterator은 Iterator의 기능을 향상 시킨 것이다.
* Iterator
- interface 메서드
public interface Iterator {
boolean hasNext(); // 읽어 올 요소가 남아 있는지 확인 한다. 있으면 true, 없으면 false.
Object next(); // 다음 요소를 읽어 온다. next()를 호출 하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전.
void remove(); // next()로 읽어 온 요소를 삭제한다. next()를 호출한 다음에 remove()를 호출해야 한다.(선택적)
}
public interface Collection{
public Iterator iterator();
}
-------------------------------------------------------------------------------------------------------------------------------------------------
package Collection_Framework;
import java.util.*;
public class Iterator1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator<String> iter = list.iterator();
while(iter.hasNext()) {
Object obj = iter.next();
System.out.println(obj);
}
}
}
출력 결과 :
1
2
3
4
5
===========================================================================================
* ListIterator
: 양방향으로 이동하기 때문에 각 요소간의 이동이 자유롭다.
다만 이동하기 전에 반드시 hasNext() 나 hasPrevious()를 호출하여 이동할 수 있는지 확인해야 한다.
- interface 메서드
void add(Object o) // 컬렉션에 새로운 객체 o를 추가한다.
boolean hasNext() // 읽어 올 다음 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환
boolean hasPrevious() // 읽어 올 이전 요소가 남아 있는지 확인한다. 있으면 true, 없으면 false를 반환
Object next() //다음 요소를 읽어 온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전한다.
Object previous() // 이전 요소를 읽어온다. previous()를 초훌하기 전에 hasPrevious()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전한다.
int nextindex() // 다음 요소의 index를 반환한다.
int previousindex() // 이전 요소의 index를 반환한다.
void remove() // next() 또는 previous()로 읽어 온 요소를 삭제한다. 반드시 next()나 previous()를 먼저 호출한 다음에 이 메서드를 호출해야 한다.
void set(Object o) // next()또는 previous()로 읽어 온 요소를 지정된 객체(o)로 변경한다. 반드시 next()나 previous()를 먼저 호출한 다음에 이 메서드를 호출해야한다.
예제.
package Collection_Framework;
import java.util.*;
public class listlterator1 {
public static void main(String[]args) {
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
ListIterator<String> iter = list.listIterator();
while (iter.hasNext()) {
System.out.print(iter.next());
}
System.out.println();
while(iter.hasPrevious()) {
System.out.print(iter.previous());
}
System.out.println();
}
}
출력 결과 :
12345
54321
* Enumeration
- interface 메서드
boolean hasMoreElements() // 읽어 올 요소가 남아 있는지 확인한다. 있으면 true, 없으면 false 반환. Iterator의 hasNext()와 같음
Object nextElement() // 다음 요소를 읽어 온다. nextElement()를 호출하기 전에 hasMoreElements()를 호출해서 읽어올 요소가 남아 있는지 확인하는 것이 안전한다. Iterator의 next()와 같다.
'Study > Java' 카테고리의 다른 글
Collection Framwork 1.3 LinkedList (0) | 2018.03.05 |
---|---|
Collection Framework 1.2 ArrayList (0) | 2018.03.05 |
java.time 패키지를 이용하여 달력 만들기 (0) | 2018.03.05 |
Collection Framework 1.7 Comparator, Comparable (0) | 2018.02.26 |
Collection Framework 1.6 Arrays (2) | 2018.02.26 |