본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스 Iterator, Listterator, Enumeration

Iterator, Listterator, Enumeration 모두 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스.

Enumeration 은 Iterator의 구버전

Listterator은 Iterator의 기능을 향상시킨것.

 

Iterator

컬렉션에 저장된 요소에 접근하는, 반환하는 iterator()를 정의하고있다.

컬렉션 클래스에 대해 iterator()를 호출하여 iterator를 얻은 다음 반복문을 통해 요소들을 읽어올 수 있다.

 

boolean hasNext()

이 메소드는 다음 요소가 존재하는지 여부를 확인합니다. 다음 요소가 있으면 `true`를 반환하고, 그렇지 않으면 `false`를 반환합니다.

ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

 

Object next()

이 메소드는 다음 요소를 반환합니다.

ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    System.out.println(element);
}

 

void remove()

이 메소드는 최근에 반환된 요소를 삭제합니다. 이 메소드는 반드시 `next()` 메소드 호출 이후에 호출되어야 합니다. 그렇지 않으면 `IllegalStateException`이 발생합니다.

ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    if (element.equals("banana")) {
        iterator.remove();
    }
}

System.out.println(list); // [apple]

 

 

 

 

Enumeration

Enumeration는 프레임웍이 만들어지기 이전에 사용하던 Iterator의 구버전

 

boolean hasMoreElements()

이 메소드는 다음 요소가 남아 있는지 여부를 확인합니다. 다음 요소가 있으면 `true`를 반환하고, 그렇지 않으면 `false`를 반환합니다.

Vector<String> vector = new Vector<>();
vector.add("apple");
vector.add("banana");

Enumeration<String> enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
    System.out.println(enumeration.nextElement());
}

 

Object nextElement()

이 메소드는 다음 요소를 반환합니다.

Vector<String> vector = new Vector<>();
vector.add("apple");
vector.add("banana");

Enumeration<String> enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
    String element = enumeration.nextElement();
    System.out.println(element);
}
//apple banana

 

 

 

 

 

 

 

 

ListIterator

Listterator은 Iterator의 기능을 향상시킨것.

 

void add(Object o)

이 메소드는 현재 ListIterator가 가리키는 위치에 지정된 요소를 추가합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
iterator.add("orange");

System.out.println(list); // [orange, apple, banana]

 

boolean hasNext()

이 메소드는 ListIterator가 다음 요소를 가리킬 수 있는지 여부를 확인합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
boolean hasNext = iterator.hasNext();

System.out.println(hasNext); // true

 

boolean hasPrevious()

이 메소드는 ListIterator가 이전 요소를 가리킬 수 있는지 여부를 확인합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
boolean hasPrevious = iterator.hasPrevious();

System.out.println(hasPrevious); // false

 

Object next()

이 메소드는 ListIterator가 다음 요소를 반환하고, ListIterator를 그 다음 요소로 이동합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
String nextElement = iterator.next();

System.out.println(nextElement); // apple

 

Object previous()

이 메소드는 ListIterator가 이전 요소를 반환하고, ListIterator를 그 이전 요소로 이동합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
iterator.next(); // Move to next element
String previousElement = iterator.previous();

System.out.println(previousElement); // apple

 

int nextIndex()

이 메소드는 ListIterator가 반환할 다음 요소의 인덱스를 반환합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
int nextIndex = iterator.nextIndex();

System.out.println(nextIndex); // 0

 

int previoudIndex()

이 메소드는 ListIterator가 반환할 이전 요소의 인덱스를 반환합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
iterator.next(); // Move to next element
int previousIndex = iterator.previousIndex();

System.out.println(previousIndex); // -1

 

void remove()

이 메소드는 ListIterator가 마지막으로 반환한 요소를 리스트에서 제거합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
iterator.next(); // Move to next element
iterator.remove();

System.out.println(list); // [banana]

 

void set(Object o)

이 메소드는 ListIterator가 마지막으로 반환한 요소를 지정된 요소로 대체합니다.

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");

ListIterator<String> iterator = list.listIterator();
iterator.next(); // Move to next element
iterator.set("orange");

System.out.println(list); // [orange, banana]