🎁 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 |
댓글