반복자 및 Listiterator의 범위와 관계 :
(1) 반복자는 반복 인터페이스 목록 배열리스트, 링크드리스트,지도 등을 구현하는 데 사용될 수 있습니다.
(2) 이름에서 알 수 있듯이 ListIterator는 ArrayList 및 LinkedList를 구현하기 위해 목록을 반복하는 데 사용됩니다.
(3) 소스 코드 또는 API 문서에서 볼 수 있듯이 반복자는 ListIterator의 상위 클래스입니다.
public interface listiterator <e> 확장 iterator <e> {// avit ...}새로운 방법이 ListIterator에 추가되었습니다.
반복자 암시 적 커서 위치 인스턴스 분석 :
위 그림에서 볼 수 있듯이 반복자가 반복 할 수집 목록에는 4 가지 요소 A, B, C, D가 있습니다. xxx.iterator () 또는 xxx.listiterator () 메소드가 호출되면
반복자는 iterator_one의 위치를 가리키고 xxx.next () 메소드가 호출되면 반복자 위치는 iterator_two 위치를 가리 킵니다.
반복자가 가리키는 위치는 요소의 바로 반대가 아니라 요소 사이에 있습니다.
반복자 및 Listiterator의 메소드 :
------ 반복자의 메소드 :
공식 API 방법 요약 :
방법 분석 :
hasnext () : 컬렉션의 요소 반복자가 가리키는 다음 위치에 요소가 있는지 여부를 결정합니다. true를 반환하고 그렇지 않으면 false를 반환합니다
다음 () : 반복자가 가리키는 위치에서 다음 요소의 값을 반환합니다.
제거 () : 반복자를 통해 반복자가 제거한 값을 제거하십시오.
------ ListIterator의 메소드 :
공식 API 방법 요약 :
방법 분석 :
추가 (EE) : 컬렉션에 지정된 요소를 삽입하십시오. 삽입 위치는 다음 () 또는 이전 () 메소드와 관련이 있습니다.
마지막 작업이 다음 () 인 경우 다음 요소가 제거 된 후 요소가 삽입되고 이전 ()이면 요소가 제거되기 전에 요소가 삽입됩니다.
hasnext () : 세트가 양의 순서로 가로 질러 횡단되면 암시 적 커서가 가리키는 다음 요소가 존재하는지 여부가 결정됩니다. 그것이 존재하면, 그것은 true를 반환하고, 그렇지 않으면 거짓을 반환합니다.
hasprevious () : 세트가 역전선이되면 암시 적 커서의 이전 요소가 존재하는지 여부를 결정합니다. 그것이 존재하면, 그것은 true를 반환하고, 그렇지 않으면 거짓을 반환합니다.
다음 () : 암시 적 커서가 가리키는 위치에서 다음 요소 값을 반환합니다.
NextIndex () : 암시 적 커서가 가리키는 위치에서 다음 요소의 인덱스 값을 반환합니다.
이전 () : 암시 적 커서가 가리키는 위치에서 이전 요소 값을 반환합니다.
previousindex () : 암시 적 커서가 가리키는 이전 위치 요소의 인덱스 값을 반환합니다.
제거 () : 컬렉션에서 요소를 삭제하는 것은 모든 요소를 삭제하는 것이 아니라 마지막 작업 () 또는 이전 ()에서 반환 된 요소를 삭제하는 것입니다.
다음 () 또는 이전 ()이 값을 반환하지 않으면 오류 가보고됩니다.
set (ee) : 다음 () 또는 이전 ()에 의해 리턴 된 요소를 목록에서 e로 바꿉니다. 예를 들어, 다음 ()가 a로 꺼내면 세트별로 a로 교체 할 수 있습니다.
Example 1:
패키지 com.lanhuigu.java; import java.util.arraylist; import java.util.list; import java.util.listiterator; public class listiteratoratorapitest {public static void main (string [] args) {list <string> list = new ArrayList <string> (); list.add ( "a"); list.add ( "b"); list.add ( "c"); list.add ( "d");이 시점에서 반복자는 iterator_one listiterator <string>> listiterator = listiterator ()를 가리킨다. 이번에는 iterator를 지적합니다. listiterator.next (); // 요소 listiterator.remove ()를 삭제합니다. // 다음에 검색된 요소를 삭제합니다. 현재 A는 컬렉션에서 삭제되었습니다. 요소 추가 // ListIterator.previous (); listiterator.add ( "e"); // 위치 iterator_two 위치를 가리키기 전에 다음에 의해 검색된 요소를 인쇄합니다. System.out.println ( "FirstElement :" + firstElement); // 포인팅 위치를 iterator_one 위치로 다시 연결하지만 A가 삭제되지 않았으며 e listiterator = list.listiterator (); while (listiterator.hasnext ()) {System.out.println(listIterator.next());}System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ list.listiterator ();Example 2:
패키지 com.lanhuigu.java; import java.util.arraylist; import java.util.iterator; import java.util.list; import java.util.listiterator; public static void main (String [] args) {list <string> list = new ArrayList <string> (); list.add ( "a"); list.add ( "b"); list.add ( "c"); list.add ( "d"); // 세트를 직접 통과하는 방법은 루프 문 (for, do-while, while) // for for (string e : list)입니다. {system.out.println (e);} system.out.println ( "-------------------"); // 세트를 가로 지르는 두 번째 방법 (iterator) iterator <string> iterator = list.iterator (); while (iterator.hasnext ()) {system.out.println (iterator.next ());} system.out.println ( "-------------------------------"); // 세트 (Listiterator) Listiterator <string> listiterator = list.listiterator (); while (listiterator.hasnext ()) {system.out.println (listiterator.next ());} system.out.println ( "--------------------");}}요약
위의 내용은 Java의 반복자 및 Listiterator 예제에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!