Java의 Iterator는 가장 일반적으로 사용되는 것 중 하나입니다. Java 컬렉션 프레임워크의 커서 . 컬렉션의 요소를 하나씩 순회하거나 반복하는 데 사용됩니다.
- 순방향으로만 요소를 이동하는 데 사용됩니다.
- Remove()를 사용하여 순회 중에 요소를 안전하게 제거합니다.
- Iterator는 모든 컬렉션 유형(목록 세트 및 큐)에 적용되는 범용 커서입니다.
반복자 선언
공용 인터페이스 반복자
여기서 E는 반복할 요소의 유형을 나타냅니다.
반복자의 객체 생성
Iterator 객체는 컬렉션 객체에 대해 iterator() 메서드를 호출하여 생성됩니다. 여기서는 Iterator를 사용하여 각 요소를 순회하고 인쇄합니다. 배열목록 .
Java수집
이름 = 새 ArrayList<>();
반복자itr = names.iterator(); 스캐너 스캔 자바
import java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Create an ArrayList and add some elements ArrayList<String> al = new ArrayList<>(); al.add('A'); al.add('B'); al.add('C'); // Obtain an iterator for the ArrayList Iterator<String> it = al.iterator(); // Iterate through the elements and print each one while (it.hasNext()) { // Get the next element String n = it.next(); System.out.println(n); } } }
산출
A B C
반복자의 계층 구조
반복자는 java.util 패키지 하위 인터페이스를 통해 모든 컬렉션 클래스에 의해 구현됩니다.
반복자 커서반복자 인터페이스의 방법
반복자 인터페이스는 아래와 같이 세 가지 메서드를 정의합니다.
- 해즈다음(): 반복에 더 많은 요소가 있으면 true를 반환합니다.
- 다음(): 반복의 다음 요소를 반환합니다. 그것은 던진다 NoSuchElementException 더 이상 요소가 존재하지 않는 경우.
- 제거하다(): next()에서 반환된 마지막 요소를 제거합니다. 이 메서드는 next() 호출당 한 번만 호출할 수 있습니다.
메모 : 제거() 메소드는 다음과 같은 두 가지 예외를 발생시킬 수 있습니다.
내부 근무
이 섹션에서는 Java Iterator와 해당 메소드가 내부적으로 작동하는 방식을 이해하려고 노력할 것입니다. 이 기능을 이해하기 위해 다음 LinkedList 개체를 살펴보겠습니다.
1단계: 이제 아래와 같이 List 객체에 Iterator 객체를 생성해 보겠습니다.
반복자
cityIterator = 도시.iterator();
'citiesIteartor' 반복자는 다음과 같습니다.
1단계여기서 Iterator의 커서는 목록의 첫 번째 요소 앞을 가리키고 있습니다.
2단계: 이제 다음 코드 조각을 실행하겠습니다.
cityIterator.hasNext();
cityIterator.next();
2단계위의 코드 조각을 실행하면 Iterator의 커서는 위 다이어그램에 표시된 대로 목록의 첫 번째 요소를 가리킵니다.
자바의 정규식
3단계: 이제 다음 코드 조각을 실행하겠습니다.
cityIterator.hasNext();
cityIterator.next();
3단계
위의 코드 조각을 실행하면 Iterator의 커서는 위 다이어그램에 표시된 대로 목록의 두 번째 요소를 가리킵니다.
4단계: 반복자의 커서를 목록의 마지막 요소에 도달하려면 이 프로세스를 수행하십시오.
Java의 유사한 인터페이스
4단계5단계: 최종 요소를 읽은 후 아래 코드 조각을 실행하면 잘못된 값이 반환됩니다.
cityIterator.hasNext();

Iterator의 커서는 목록의 마지막 요소 이후를 가리킵니다. 해즈다음() 메서드가 거짓 값을 반환합니다.
메모: Java Iterator는 순방향 반복만 지원하므로 단방향 커서라고 합니다. 대조적으로 ListIterator는 양방향으로 탐색이 가능합니다.
Java 반복자: 순방향예: 여기서는 Iterator를 사용하여 ArrayList에서 홀수 요소를 탐색하고 제거합니다.
Javaimport java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Creating an ArrayList of Integer type ArrayList<Integer> al = new ArrayList<>(); // Adding elements to the ArrayList for (int i = 0; i < 10; i++) { al.add(i); } // Printing the original list System.out.println('Original List: ' + al); // Creating an Iterator for the ArrayList Iterator<Integer> itr = al.iterator(); // Iterating through the list and removing odd elements while (itr.hasNext()) { // Getting the next element int i = itr.next(); System.out.print(i + ' '); // Removing odd elements if (i % 2 != 0) { itr.remove(); } } System.out.println(); // Printing the modified list after removal of odd elements System.out.println('Modified List: ' + al); } }
산출
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]
설명: 위의 예에서는 정수의 ArrayList를 만든 다음 Iterator를 사용하여 이를 반복하고 모든 홀수를 제거합니다. 홀수 요소를 제거하기 전과 제거한 후의 목록을 인쇄하고 수정된 목록에는 짝수만 인쇄합니다.