도찐개찐
[JAVA] Iterator 본문
Iterator 란?
iterate : (계산, 컴퓨터 처리 절차를) 반복하다
iterator : 반복자
- 데이터를 순서대로 추출할 수 있는 기능만을 함
- Set, List 계열에 대입된 모든 것은 Iterable을 상속 받은 컬렉션을 상속 받고 있으므로 .itertor() 메소드를 사용하여 추출 가능
- Iterator 인덱스 0번보다 위쪽을 가리킴.
- 인덱스의 개수를 모르므로 while를 사용.
- .hasNext() 메소드는 1칸 이동 전 이동 후 데이터가 있는지 사전 체크 있으면 true, 없으면 false
- .next() 메소드는 1칸 이동 후 해당 데이터를 추출 함.
List Iterator 변환 및 반복 예제
public class BookArrayListTest {
public static void main(String[] args) {
// 별도 Books 클래스 생성 후 ArrayList 내 제네릭 사용
ArrayList<Book> books = new ArrayList<>();
for (int i = 0; i <= 6; i++) {
books.add(i, new Book(i+". 태백산맥", "홍길동"));
}
// 향상된 for(forEach) 사용
for (Book book: books) {
System.out.println(book);
}
System.out.println("================================");
// Iterator 변환 사용
Iterator<Book> iter = books.iterator();
while (iter.hasNext()) {
Book book = iter.next();
System.out.println(book);
}
}
}
Map Iterator 변환 과정 및 반복 예제
public class BookMapTest {
public static void main(String[] args) {
HashMap<Integer, Book> books = new HashMap<>();
for (int i = 0; i <= 6; i++) {
books.put(i, new Book(i+". 태백산맥", "홍길동"));
}
Set<Integer> sets = books.keySet();
Iterator<Integer> keys = sets.iterator();
while (keys.hasNext()) {
System.out.println(books.get(keys.next()));
}
}
}
Set 변환 과정은 Map 계열 변환에서 keySet 이후 변환 과정이 동일 합니다.
728x90
'JAVA' 카테고리의 다른 글
[JAVA] 네이밍 룰(Naming Role, Conventions) (0) | 2022.07.21 |
---|---|
[JAVA] 자바 코딩 규칙(Code Conventions) (0) | 2022.07.21 |
[JAVA] 문서 주석(javadoc) 사용 법 (0) | 2022.07.20 |
[JAVA] 자료구조(Data Structure), 컬랙션(Collection) (0) | 2022.07.20 |
[JAVA] 서블릿 처리구조 (0) | 2022.07.08 |
Comments