LinkedList In Java | Java Tutorial
Earlier we have seen Arrays and ArrayList. In this post, we will see LinkedList in Java. LinkedList is a class in the Collection Framework. LinkedList class implements List and Deque interfaces. LinkedList class extends AbstractList class. Lets see some key points on LinkedList.
- LinkedList class can hold duplicate elements in list.
- LinkedList is used to create an empty linked list.
- LinkedList class maintains insertion order.
- LinkedList class is non synchronized.
- In LinkedList class, manipulation is fast because shifting is not required when new element is inserted or deleted from the list.
Java LinkedList Example:
package samplePackage; import java.util.LinkedList; public class LinkedListExample { public static void main(String args[]) { //Creating linked list object LinkedList<String> lref = new LinkedList<String>(); // Adding elements using add method lref.add("IDE"); lref.add("RC"); lref.add("WebDriver"); lref.add("Grid"); System.out.println(lref); // Adding element at first position in list using addFirst lref.addFirst("QTP"); // Adding element at last position in list using addLast lref.addLast("Protractor"); System.out.println(lref); // Add elements at index 1 in list lref.add(0, "Mercury"); System.out.println(lref); // Removing first item from list using removeFirst method lref.removeFirst(); // Removing last item from list using removeLast method. lref.removeLast(); System.out.println(lref); // Removing item from list using value lref.remove("Two"); System.out.println(lref); // Removing item from list using index lref.remove(3); System.out.println(lref); // Get item from list using index System.out.println(lref.get(0)); // Set item at given index in list lref.set(3, "New Entry"); System.out.println(lref); // We have four ways to print all the values of linked list System.out.println("====== For Loop starts here ======"); for(int l=0; l<lref.size(); l++) { System.out.println(lref.get(l)); } System.out.println("====== For Loop ends here ======"); System.out.println("====== For Each starts here ======"); for(String str:lref) { System.out.println(str); } System.out.println("====== For Each ends here ======"); System.out.println("====== Iterator starts here ======"); Iterator <String> it = lref.iterator(); while(it.hasNext()){ System.out.println(it.next()); } System.out.println("====== Iterator ends here ======"); System.out.println("====== While starts here ======"); int num=0; while(lref.size()>num){ System.out.println(lref.get(num)); num=num+1; } System.out.println("====== While ends here ======"); } }
Output:
[IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid, Protractor] [Mercury, QTP, IDE, RC, WebDriver, Grid, Protractor] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, Grid] QTP [QTP, IDE, RC, New Entry]
LinkedList using For loop:
package samplePackage; import java.util.LinkedList; public class LinkedListExample { public static void main(String args[]) { //Creating linked list object LinkedList<String> lref = new LinkedList<String>(); // Adding elements using add method lref.add("IDE"); lref.add("RC"); lref.add("WebDriver"); lref.add("Grid"); System.out.println(lref); // Adding element at first position in list using addFirst lref.addFirst("QTP"); // Adding element at last position in list using addLast lref.addLast("Protractor"); System.out.println(lref); // Add elements at index 1 in list lref.add(0, "Mercury"); System.out.println(lref); // Removing first item from list using removeFirst method lref.removeFirst(); // Removing last item from list using removeLast method. lref.removeLast(); System.out.println(lref); // Removing item from list using value lref.remove("Two"); System.out.println(lref); // Removing item from list using index lref.remove(3); System.out.println(lref); // Get item from list using index System.out.println(lref.get(0)); // Set item at given index in list lref.set(3, "New Entry"); System.out.println(lref); System.out.println("====== For Loop starts here ======"); for(int l=0; l<lref.size(); l++) { System.out.println(lref.get(l)); } System.out.println("====== For Loop ends here ======"); } }
Output:
[IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid, Protractor] [Mercury, QTP, IDE, RC, WebDriver, Grid, Protractor] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, Grid] QTP [QTP, IDE, RC, New Entry] ====== For Loop starts here ====== QTP IDE RC New Entry ====== For Loop ends here ======
LinkedList with Enhanced For Loop:
package samplePackage; import java.util.LinkedList; public class LinkedListExample { public static void main(String args[]) { //Creating linked list object LinkedList<String> lref = new LinkedList<String>(); // Adding elements using add method lref.add("IDE"); lref.add("RC"); lref.add("WebDriver"); lref.add("Grid"); System.out.println(lref); // Adding element at first position in list using addFirst lref.addFirst("QTP"); // Adding element at last position in list using addLast lref.addLast("Protractor"); System.out.println(lref); // Add elements at index 1 in list lref.add(0, "Mercury"); System.out.println(lref); // Removing first item from list using removeFirst method lref.removeFirst(); // Removing last item from list using removeLast method. lref.removeLast(); System.out.println(lref); // Removing item from list using value lref.remove("Two"); System.out.println(lref); // Removing item from list using index lref.remove(3); System.out.println(lref); // Get item from list using index System.out.println(lref.get(0)); // Set item at given index in list lref.set(3, "New Entry"); System.out.println(lref); System.out.println("====== Enhanced For loop starts here ======"); for(String str:lref) { System.out.println(str); } System.out.println("====== Enhanced For loop ends here ======"); } }
Output:
[IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid, Protractor] [Mercury, QTP, IDE, RC, WebDriver, Grid, Protractor] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, Grid] QTP [QTP, IDE, RC, New Entry] ====== Enhanced For loop starts here ====== QTP IDE RC New Entry ====== Enhanced For loop ends here ======
LinkedList using Iterator:
package samplePackage; import java.util.Iterator; import java.util.LinkedList; public class LinkedListExample { public static void main(String args[]) { //Creating linked list object LinkedList<String> lref = new LinkedList<String>(); // Adding elements using add method lref.add("IDE"); lref.add("RC"); lref.add("WebDriver"); lref.add("Grid"); System.out.println(lref); // Adding element at first position in list using addFirst lref.addFirst("QTP"); // Adding element at last position in list using addLast lref.addLast("Protractor"); System.out.println(lref); // Add elements at index 1 in list lref.add(0, "Mercury"); System.out.println(lref); // Removing first item from list using removeFirst method lref.removeFirst(); // Removing last item from list using removeLast method. lref.removeLast(); System.out.println(lref); // Removing item from list using value lref.remove("Two"); System.out.println(lref); // Removing item from list using index lref.remove(3); System.out.println(lref); // Get item from list using index System.out.println(lref.get(0)); // Set item at given index in list lref.set(3, "New Entry"); System.out.println(lref); System.out.println("====== Iterator starts here ======"); Iterator <String> it = lref.iterator(); while(it.hasNext()){ System.out.println(it.next()); } System.out.println("====== Iterator ends here ======"); } }
Output:
[IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid, Protractor] [Mercury, QTP, IDE, RC, WebDriver, Grid, Protractor] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, WebDriver, Grid] [QTP, IDE, RC, Grid] QTP [QTP, IDE, RC, New Entry] ====== Iterator starts here ====== QTP IDE RC New Entry ====== Iterator ends here ======
Methods for Java LinkedList:
- int size(): It returns the number of elements in the list.
- void clear(): It removes all of the elements from the list.
- Object set(int index, Object element): It is used to replace an existing element in the list with a new element.
- void add(int index, Object element): It inserts the element at the position ‘index’ in the list.
- void addFirst(Object element): It inserts the element at the beginning of the list.
- void addLast(Object element): It appends the element at the end of the list.
- Object get(int index): It returns the element at the position ‘index’ in the list. It throws ‘IndexOutOfBoundsException’ if the index is out of range of the list.
- Object getFirst(): It returns the first element of the Linked List.
- Object getLast(): It returns the last element of the Linked List.
- int indexOf(Object element): If element is found, it returns the index of the first occurrence of the element. Else, it returns -1.
- int lastIndexOf(Object element): If element is found, it returns the index of the last occurrence of the element. Else, it returns -1.
- Object remove(): It is used to remove and return the element from the head of the list.
- Object remove(int index): It removes the element at the position ‘index’ in this list. It throws ‘NoSuchElementException’ if the list is empty.
- Object removeLast(): It is used to remove and return the last element of the Linked List.
Must Read: Java Tutorial