[TIL] 컬렉션 - java.util.Enumeration & Iterator
java.util.Enumeration<E>
사전적 의미로는 열거, 반복자라는 뜻으로 어떤 객체들의 모임이 있을 때, 객체들을 어떤 순서에 의해서 하나씩 접근하기 위한 인터페이스이다.
과거에는 Enumeration을 자주 사용했지만 현재에는 Iterator를 사용하는 추세이다.
Enemeration<E>인터페이스 사용법은 아래와 같다.
Enumeration<String> 객체를 먼저 생성하고
해당 인터페이스의 메소드를 사용하여 호출한다.
hasMoreElements() 메소드는 불러올 요소가 존재하면 true 아니면 false를 리턴해준다.
nextElement() 메소드는 다음 열거할 요소를 돌려주는 메소드이다.
while문을 사용하여 Vector의 요소들을 모두 불러왔다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package ex0814;
import java.util.Enumeration;
import java.util.Vector;
public class Enumeration_Ex1 {
public static void main(String[] args) {
Vector<String> v = new Vector<>();
v.add("머리");
v.add("몸통");
v.add("다리");
Enumeration<String> e= v.elements();
while(e.hasMoreElements()) {
String s= e.nextElement();
System.out.print(s+" ");
}
System.out.println();
}
}
|
cs |
java.util.Iterator<E>
Enumeration 와 같은 반복자이며 차이점은 remove() 메소드의 유무이다. hasNext와 next 메소드는 동일하다.
remove() 메소드는 반복자에 의해 마지막에 돌려진 요소를 삭제해주는 메소드를 말한다.
java.util.ListIterator 인터페이스
Iterator 인터페이스를 상속받은 인터페이스로 Iterator 과 차이점은 양방향 반복이 가능하다는 점이다.
목록의 반복자에서 현재 위치를 가져올 수 있으며, 수정 가능한 리스트는 삽입,삭제,수정이 가능한 인터페이스이다.
void add(E e) | 요소를 리스트에 삽입한다. |
boolean hasNext() | 순방향 검색시 요소 존재하면 true 리턴 |
bololean hasPrevious() | 역방향 검색시 요소 존재시 true리턴 |
E next() | 리스트 내 다음 요소 리턴 |
int nextIndex() | 다음의 next() 메소드 호출이 리턴할 객체의 인덱스를 리턴하며 예외 발생시 -1 리턴 |
E prievious() | 리스트 내의 직전의 요소를 리턴 |
int previousIndex() | 다음의 previous() 메소드 호출이 리턴 할 객체의 인덱스를 리턴 예외시 -1 리턴 |
void remove() | next/ previous 메소드가 리턴한 요소를 삭제 |
void set(E e) | next/previous 메소드가 최근에 리턴한 객체를 지정한 객체로 변경 |
'Language > JAVA' 카테고리의 다른 글
[TIL] 컬렉션 - java.util.Map<K, V> 인터페이스 & 구현클래스 (0) | 2020.09.07 |
---|---|
[TIL] 컬렉션 - java.util.Set<E> 인터페이스 & 구현 클래스 (0) | 2020.09.07 |
[TIL] 컬렉션 - java.util.List<E> 인터페이스 & 구현 클래스 (0) | 2020.08.24 |
[TIL] 컬렉션 프레임워크 (0) | 2020.08.14 |
[TIL] 제네릭 (2) | 2020.08.12 |
댓글