본문 바로가기
> 프로그래밍 언어/JAVA

[ch11-22~24] Iterator, Enumeration, Map과 Iterator

by 자몽주스 2023. 1. 25.
728x90

컬렉션에 저장된 데이터를 읽어올 때 사용

 

핵심은 위에 두 개 동그라미 표시된 것

hasNext: 읽어올게 남아있는 지 확인

Object next: 읽어오기

1) 확인

2) 읽기

 

더 이상 읽어올 것이 없으면

false로 리턴

Enumeration은 Iterator의 구버전

거의 같다고 봄

Enumeration이 가진 메서드

이름만 다를 뿐

위의 표처럼 하는 일이 같음

true면 다음 요소 읽어옴

false면 반환

Listlterator는 next 뿐만 아니라

previous도 있다

next: 한방향으로만 감

(다음요소만 읽을 수 있음)

 

Listlterator는

양방향

다음요소 + 이전요소

읽어올 수 있음

 

잘은 안 씀

컬렉션: List / Set / Map

컬렉션들 마다 구조가 다르고

요소를 읽어오는 방법이 다 다름

그것을 표준화 한 것이

Iterator

 

동그라미 친 두 부분만 하면 된다

밑에는 신경 X

<Iterator 사용 방법>

ArrayList인데 Iterator호출하면

그 반환 결과가 Iterator로 된다

(Iterator 객체를 반환)

hasNext: 읽어올 요소가 있는 지 확인한다음

next 호출해서 요소를 읽어 옴

<예제>

ArrayList에 숫자 저장한 것

 

list에서 Iterator 호출 하면

Iterator 객체를 얻음

 

 그 다음

반복문 이용해서

하나씩 읽어오기

또 반복문 실행하려고 하면

iterator은 1회용이라

새로운 객체를 다시 얻어와서

반복문 실행해야 함

반복문 두 번의 결과 값

12:29 다시보기

for문으로 변경해서 사용한 경우

Map에는 Iterator 없음

Map 인터페이스는

Collection의 자손이 아님

 

 

메서드를 이용해서 호출해야 함

HashMap이 있으면

거기서 entrySet을 호출하고

iterator를 사용

entry: key + value 한 쌍

 

두 줄(박스)를 합쳐 놓은 것이

Iterator it = map.entrySet().iterator();

<실행되는 순서>

1) 실행 결과가 set이 되고

2) 이 set에다가 iterator 얻으면

결과가 iterator 객체가 되고

3) 그 객체의 주소가 it로 (참조변수) 저장 됨

 

 

728x90