Java

[Java] Iterator 개념부터 사용 방법 뿌시기!!

블로그 주인장 2023. 8. 21.

🎁 Iterator 란?

1) 사전적인 의미로 '반복한다' 라는 의미이다.

2) 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법 중 하나이다.

🎁 Iterator 함수 기본형

public interface Iterator {
	boolean hasNext();
	Object next();
	void remove();
}

1) hasNext() 메소드 : 읽어 올 요소가 남아 있는지 확인하는 메소드 (있으면 true, 없으면 false)

2) next() 메소드 : 읽어온 요소를 확인하는 메소드

3) remove() 메소드 : next()로 읽어온 요소를 삭제

🎁 Iterator 함수 장점

1) 모든 컬렉션 프레임워크(List, Set, Queue, Map 등) 사용 가능하다.

2) 컬렉션 프레임워크에서 쉽게 값을 가져오고 제거할 수 있다.

3) 3개의 메소드(hasNext(), next(), remove())만 알면 되어서 사용하기 편리하다.

🎁 Iterator 함수 단점

1) 처음부터 단방향 반복만 가능하다.

2) 값을 변경하거나 추가는 불가능하다.

3) 대량의 데이터를 제어할 시에는 속도가 느리다.

🎁 Iterator 함수 사용 예제(1) - ArrayList

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

public class Main
{
    public static void main(String[] args)
    {
        // 컬렉션 생성
        ArrayList<String> Alphabet = new ArrayList<>();
        Alphabet.add("A");
        Alphabet.add("B");
        Alphabet.add("C");
        Alphabet.add("D");

        // iterator 획득
        Iterator<String> iterator = Alphabet.iterator();

        // while문을 사용한 경우
        while(iterator.hasNext())
        {
            String str = iterator.next();
            System.out.print(str + " ");	//[A B C D]
        }

        // for-each문을 사용한 경우
        for (String str : Alphabet)
        {
            System.out.print(str + " ");	//[A B C D]
        }
    }
}

🎁 Iterator 함수 사용 예제(2) - Set

import java.util.HashSet;
import java.util.Iterator;

public class Main
{
    public static void main(String[] args)
    {
        // 컬렉션 생성
        HashSet<String> Alphabet = new HashSet<>();
        Alphabet.add("A");
        Alphabet.add("B");
        Alphabet.add("C");
        Alphabet.add("D");

        // iterator 획득
        Iterator<String> iterator = Alphabet.iterator();

        // while문을 사용한 경우
        while(iterator.hasNext())
        {
            String str = iterator.next();
            System.out.print(str + " ");	//[A B C D]
        }

        // for-each문을 사용한 경우
        for (String str : Alphabet)
        {
            System.out.print(str + " ");	//[A B C D]
        }
    }
}

🎁 Iterator 함수 사용 예제(3) - Map

import java.util.HashMap;
import java.util.Iterator;

public class Main
{
    public static void main(String[] args)
    {
        // 컬렉션 생성
        HashMap<String, Integer> Alphabet = new HashMap<>();
        Alphabet.put("A", 1);
        Alphabet.put("B", 2);
        Alphabet.put("C", 3);
        Alphabet.put("D", 4);

        // iterator 획득
        Iterator<String> iterator = Alphabet.keySet().iterator();

        // while문을 사용한 경우
        while(iterator.hasNext())
        {
            String key = iterator.next();
            Integer value = Alphabet.get(key);
            System.out.println(key + " ");	//[A B C D]
            System.out.println(value + " ");	//[1 2 3 4]
        }
    }
}
반응형

'Java' 카테고리의 다른 글

[Java] 집합의 특징과 종류  (0) 2023.08.22
[Java] Scanner vs BufferedReader, StringTokenizer  (0) 2023.08.16
[Java] 람다식과 스트림  (0) 2023.08.10

댓글