java collection Listiterator

canyi·2023년 6월 23일
0

java m1

목록 보기
30/40

Listiterator

Iterator의 기능을 확장(상속)

  • Iterator 인터페이스를 상속 받아 확장
  • 양방향으로 이동 가능
  • List 인터페이스를 구현한 List 컬렉션 클래스에서만 listIterator()를 통해 사용 가능

iterator vs list iterator

반복자(iterator):

컬렉션 내의 요소를 순차적으로 탐색하는 데 사용됩니다.
이전 요소로 다시 돌아갈 수 없고, 컬렉션 내의 요소를 수정할 수 없습니다.
순방향(forward)으로만 순회할 수 있습니다.
컬렉션 인터페이스에서 제공됩니다.

리스트반복자(list iterator):

리스트(List) 인터페이스에서 파생된 인터페이스로, 리스트를 순회하고 수정하는 데 사용됩니다.
이전 요소로 돌아갈 수 있고, 순방향과 역방향으로 순회할 수 있습니다.
컬렉션 내의 요소를 수정하고 삭제할 수 있습니다.
리스트 인터페이스에서 제공됩니다.

반복자는 요소를 읽을 때 사용되며, 리스트반복자는 요소를 읽을 뿐만 아니라 수정 및 삭제도 가능합니다. 따라서 요소의 순회만 필요한 경우에는 반복자를 사용하고, 요소의 수정이나 삭제가 필요한 경우에는 리스트반복자를 사용하는 것이 적합합니다.

코드 예시

import java.util.*;

public class ex06_ListIterator {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("4");
		list.add("5");

		ListIterator<String> it = list.listIterator();

		//순방향, 역방향 모두 가능 
		while(it.hasNext()) {
			System.out.print(it.next() + " "); // 순방향으로 진행하면서 읽어온다.
		}
		System.out.println();

		while(it.hasPrevious()) {
			System.out.print(it.previous()+ " "); // 역방향으로 진행하면서 읽어온다.
		}
		System.out.println();
	}
}

profile
백엔드 개발 정리

0개의 댓글