[Java Collection] 이더레이터 패턴

0

Iterator는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화한 것이다.

About Java Collection...

collection framwork란 데이터를 저장하는 클래스들을 표준화한 설계이다.

collection framework는 위 그림과 같이 데이터를 저장하는 구조에 따라 3가지 인터페이스로 나뉜다.

  1. Set: 순서를 유지하지 않는 집합, 데이터 중복 허용 X, HashSet, TreeSet등이 있다.

  2. List: 순서를 유지하는 데이터의 집합이다. 데이터의 중복이 허용 O, LinkedList, ArrayList등이 있다.

  3. Map: 으로 이루어진 데이터의 집합이다. 순서는 유지 되지 않으며, 키는 중복을 허락하지 않는다. TreeMap, HashTable,HashMap등이 있다.

Iterator 메소드

Iterator는 이런 집합체로부터 정보를 얻어낸다.

집합체를 다룰 떄는 개별적인 클래스에 대해 데이터를 읽는법을 알아야 하므로 각 컬렉션에 접근이 힘들어진다.

Iterator를 통해 어떤 컬렉션이라도 동일한 방식으로 접근 가능하여 그 안에 있는 항목들에 접근할 수 있는 방법을 제공한다.

Iterator메소드로는 hasNext(), next(), remove()가 있다.

hasNext: 읽을 요소가 남아있는지 확인, 있으면 true, 없으면 false.
next(): 다음 데이터를 반환한다.
remove(): next()로 읽어온 요로를 삭제한다.

다음은 리스트에 들어있는 ,,라는 데이터를 삭제하는 예제이다.

import java.util.ArrayList;
import java.util.Iterator;

public class Practice{
	public static void main(Stirngp[]args){
    	System.out.println("List생성");
        ArrayList list = new ArraryList();
        list.add("일");
        list.add("월");
        list.add("수");

		Iterator iter = list.iterator(); //객체 생성
        
        while(iter.hasNext()==true){	// hasNext()
        	String day = (String)iter.next();
            if(day=="수"){
            	iter.remove();
            }
            System.out.println("Day:" + day);
        }
        
        System.out.println("-------------");
        
        iter = list.iterator();
        
        while(iter.hasNext()==true){
        	String day = (String)iter.next();
            System.out.println("Day:" + day);
        }
    }
}

profile
성장에 목마른 소프트웨어 엔지니어

0개의 댓글