씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

[Java] 이터레이터(iterator)
Java 관련/Java

[Java] 이터레이터(iterator)

2021. 11. 16. 11:09
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
    'Java 관련/Java' 카테고리의 다른 글
    • [Java] 예외 처리(Exception)
    • [Java] Comparable & Comparator
    • [Java] Map Collection(맵)
    • [Java] Set Collection(셋 컬렉션)
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바