ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] LinkedList를 접근 제어하는 ListIterator
    JAVA 2021. 1. 24. 19:41

     

    LinkedList를 접근 제어하는 ListIterator 


    안녕하세요? 장장스입니다.

    LinkedList를 사용할 때 유용한 ListLiterator에 대해 살펴보려고 합니다.

    JAVA의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스를 사용합니다.

    그 중에서 Iterator 인터페이스를 상속받아 List 컬렉션에서 사용가능한 기능을 추가한 인터페이스가 바로 ListIterator 인터페이스입니다.

     

    listIterator 메소드 정리


    메소드 설명
    void add(E e) 해당 리스트(list)에 전달된 요소를 추가함. (선택적 기능)
    boolean hasNext() 이 리스트 반복자가 해당 리스트를 순방향으로 순회할 때 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함.
    boolean hasPrevious() 이 리스트 반복자가 해당 리스트를 역방향으로 순회할 때 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함.
    E next() 리스트의 다음 요소를 반환하고, 커서(cursor)의 위치를 순방향으로 이동시킴.
    int nextIndex() 다음 next() 메소드를 호출하면 반환될 요소의 인덱스를 반환함.
    E previous() 리스트의 이전 요소를 반환하고, 커서(cursor)의 위치를 역방향으로 이동시킴.
    int previousIndex() 다음 previous() 메소드를 호출하면 반환될 요소의 인덱스를 반환함.
    void remove() next()나 previous() 메소드에 의해 반환된 가장 마지막 요소를 리스트에서 제거함. (선택적 기능)
    void set(E e) next()나 previous() 메소드에 의해 반환된 가장 마지막 요소를 전달된 객체로 대체함. (선택적 기능)

     

     

    add(E e)


    LinkedList<String> lnkList = new LinkedList<>();
    
    lnkList.add("A");
    lnkList.add("B");
    lnkList.add("C");
    lnkList.add("D");
    
    //ListIterator 생성
    ListIterator<String> iter = lnkList.listIterator();
    iter.add("Z");

     

     

    hasNext(), next()


     

    while (iter.hasNext()) {
    	System.out.print(iter.next() + " ");
    }

    코드 실행 결과

     

     

    hasPrevious(), previous()


    while (iter.hasPrevious()) {
    	System.out.print(iter.previous() + " ");
    }

     

    코드 실행 결과

    remove()


    iter.next();
    iter.next();
    iter.remove();

    nextIndex(), previousIndex()


    System.out.println(iter.nextIndex());
    System.out.println(iter.previousIndex());

    코드 실행 결과

     

     

     

     

    References


     

     


    잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)

     

     

    댓글