Java LinkedList listIterator() Method



Description

The Java LinkedList listIterator() method returns an list iterator over the elements in this list in proper sequence. The list iterator is fail-fast means after creation of iterator, any structural modification done to linkedList object without using iterator.add() or remove() method will lead to ConcurrentModificationException.

Declaration

Following is the declaration for java.util.LinkedList.listIterator() method

public ListIterator<E> listIterator()

Parameters

NA

Return Value

This method returns an iterator over the elements in this list in proper sequence.

Exception

NA

Java LinkedList listIterator(index) Method

Description

The Java LinkedList listIterator(index) method returns an list iterator over the elements in this list, starting at specified point. The specified index indicates the first element to be returned by an initial call to next. An initial call to previous returns the element with the specified index minus one. The list iterator is fail-fast means after creation of iterator, any structural modification done to linkedList object without using iterator.add() or remove() method will lead to ConcurrentModificationException.

Declaration

Following is the declaration for java.util.LinkedList.listIterator() method

public ListIterator<E> listIterator(index)

Parameters

index − index of the first element to be returned from the list iterator (by a call to next)

Return Value

This method returns an iterator over the elements in this list in proper sequence, starting at the specified position in the list.

Exception

IndexOutOfBoundsException − if the index is out of range (index < 0 || index > size())

Getting ListIterator to iterate a LinkedList of Integers Example

The following example shows the usage of Java LinkedList iterator() method. We're creating a LinkedList of Integers. We're adding couple of Integers to the LinkedList object using add() method calls per element and using iterator() method, we're iterating the list and print all the elements.

package com.tutorialspoint;

import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListDemo {
   public static void main(String[] args) {
      
      // create an empty linked list 
      LinkedList<Integer> linkedList = new LinkedList<>();

      // use add() method to add elements in the linkedList
      linkedList.add(0);
      linkedList.add(1);
      linkedList.add(2);
      linkedList.add(3);
      linkedList.add(4);
      linkedList.add(5);
      linkedList.add(6);
	  
      ListIterator<Integer> listIterator = linkedList.listIterator();
      listIterator.forEachRemaining(i -> System.out.println(i));
   }
}

Output

Let us compile and run the above program, this will produce the following result −

0
1
2
3
4
5
6

Getting ListIterator to iterate a LinkedList of Strings Example

The following example shows the usage of Java LinkedList iterator(index) method. We're creating a LinkedList of Strings. We're adding couple of Strings to the LinkedList object using add() method calls per element and using iterator(index) method, we're iterating the list and print all the elements starting from 3rd string.

package com.tutorialspoint;

import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListDemo {
   public static void main(String[] args) {
      
      // create an empty linked list
      LinkedList<String> linkedList = new LinkedList<>();

      // use add() method to add elements in the linkedList
      linkedList.add("A");
      linkedList.add("B");
      linkedList.add("C");
      linkedList.add("D");
      linkedList.add("E");
      linkedList.add("F");
	  
      ListIterator<String> listIterator = linkedList.listIterator(2);
      listIterator.forEachRemaining(i -> System.out.println(i));
   }
}

Output

Let us compile and run the above program, this will produce the following result −

C
D
E
F

Getting ListIterator to iterate a LinkedList of Objects Example

The following example shows the usage of Java LinkedList listIterator() method. We're creating a LinkedList of Student objects. We're adding couple of Student objects to the LinkedList object using add() method calls per element and using listIterator() method, we're iterating the list and print all the elements.

package com.tutorialspoint;

import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListDemo {
   public static void main(String[] args) {

      // create an empty linkedList
      LinkedList<Student> linkedList = new LinkedList<>();

      // use add() method to add elements in the linkedList
      linkedList.add(new Student(1, "Julie"));
      linkedList.add(new Student(2, "Robert"));
      linkedList.add(new Student(3, "Adam"));

      ListIterator<Student> listIterator = linkedList.listIterator();
      listIterator.forEachRemaining(i -> System.out.println(i));    
   }
}

class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

Output

Let us compile and run the above program, this will produce the following result −

[ 1, Julie ]
[ 2, Robert ]
[ 3, Adam ]
java_util_linkedlist.htm
Advertisements