Add, remove, retain, sort methods of linkedlist collection (java / example)

What is LinkedList collection?

  • The LinkedList class extends AbstractSequentialList and implements the List interface.
  • Important methods of LinkedList collection?
    • Remove
    • Add
    • Retain
    • Sort
    • Iterate
    • Get
    • Contains And
    • Clear

Program – Add, remove, retain, sort methods of linkedlist

package org.learn.collection.list.linkedlist;
 
import java.util.Collections;
import java.util.LinkedList;
import java.util.ListIterator;
 
public class DemoLinkedList {
 
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("archery");
        linkedList.add("badminton");
        linkedList.add("canoe");
        linkedList.add("boxing");
        linkedList.add("canoe");
        linkedList.add("diving");
        linkedList.add("badminton");
        linkedList.add("diving");
 
        System.out.println("Demo of remove methods: ");
        demoRemoveMethod(linkedList);
 
        System.out.println("\nDemo of add methods: ");
        demoAddMethod(linkedList);
 
        System.out.println("\nDemo of retain method: ");
        demoRetainAll(linkedList);
 
        System.out.println("\nSort elements of linkedList: ");
        demoSortMethod(linkedList);
 
        System.out.println("\nIterate through linkedList: ");
        demoIterateMethod(linkedList);
 
        //[golf, diving, archery]
        System.out.println("\nDemo of get method of linkedlist: ");
        //golf
        System.out.println("Element at index 0: " + linkedList.get(0));
        //archery
        System.out.println("Element at index 2: " + linkedList.get(2));
 
        //[golf, diving, archery]
        System.out.println("\nDemo of contains method of linkedlist: ");
        System.out.println("Check linkedlist contains diving: " + linkedList.contains("diving"));
        System.out.println("Check linkedlist contains judo: " + linkedList.contains("judo"));
 
        System.out.println("\nDemo of clear method of linkedlist: ");
        linkedList.clear();
        System.out.println("Clear linkedList: " + linkedList);
    }
 
    private static void demoRemoveMethod(LinkedList<String> linkedList) {
        // [archery, badminton, canoe, boxing, diving, badminton, diving]
        System.out.println("Orignal LinkedList:" + linkedList);
 
        // Remove element by index
        String removedElement = linkedList.remove(2);
        // [archery, badminton, boxing, diving, badminton, diving]
        System.out.printf("1. Removed element %s from index 2: %s \n", removedElement, linkedList);
 
        // Remove element by index
        removedElement = linkedList.removeFirst();
        // [badminton, boxing, diving, badminton, diving]
        System.out.printf("2. Removed first element %s of linked list:%s \n", removedElement, linkedList);
 
        // Remove element by index
        removedElement = linkedList.removeLast();
        // [badminton, boxing, diving, badminton]
        System.out.printf("3. Removed last element %s of linked list:%s \n", removedElement, linkedList);
 
        // Remove element after comparing and remove it
        linkedList.remove("boxing");
        // [badminton, diving, badminton]
        System.out.println("4. Removed boxing from linkedList: " + linkedList);
 
        LinkedList<String> removeElementsList = new LinkedList<>();
        removeElementsList.add("diving");
 
        // Remove element by supplying another collection
        linkedList.removeAll(removeElementsList);
 
        // [badminton, badminton]
        System.out.println("5. Removed collection containing diving: " + linkedList);
 
        // Remove element by supplying another collection
        linkedList.removeLastOccurrence("badminton");
 
        // [badminton, badminton]
        System.out.println("6. Removed last occurence of badminton: " + linkedList);
 
        // Remove element by supplying another collection
        linkedList.removeFirstOccurrence("badminton");
 
        // [badminton, badminton]
        System.out.println("7. Removed first occurence of badminton: " + linkedList);
    }
 
    private static void demoAddMethod(LinkedList<String> linkedList) {
        // [canoe]
        System.out.println("1. Orignal LinkedList:" + linkedList);
        linkedList.add(0, "archery");
        linkedList.add(2, "canoe");
        // [archery, canoe, canoe]
        System.out.println("2. Added element at 0 and 2 index: " + linkedList);
 
        linkedList.add("diving");
        // [archery, canoe, canoe, diving]
        System.out.println("3. Added element in list: " + linkedList);
 
        LinkedList<String> addElementsList = new LinkedList<>();
        addElementsList.add("squash");
        addElementsList.add("bowling");
 
        // It will add elements to last of list
        linkedList.addAll(addElementsList);
        // [archery, canoe, canoe, diving, squash, bowling]
        System.out.println("4. Added another list : " + linkedList);
 
        LinkedList<String> anotherList = new LinkedList<>();
        anotherList.add("golf");
        anotherList.add("judo");
 
        // It will add elements from index 1
        linkedList.addAll(1, anotherList);
        // [archery, golf, judo, canoe, canoe, diving, squash, bowling]
        System.out.println("5. Added another list at index 1 : " + linkedList);
 
        // It will add element before head i.e. first element of list of list
        linkedList.addFirst("squash");
        //  [squash, archery, golf, judo, canoe, canoe, diving, squash, bowling]
        System.out.println("6. Added element before head : " + linkedList);
 
        // It will add elements to last of list
        linkedList.addLast("judo");
        // [squash, archery, golf, judo, canoe, canoe, diving, squash, bowling, judo]
        System.out.println("7. Added element to after tail node : " + linkedList);
    }
 
    private static void demoRetainAll(LinkedList<String> linkedList) {
        // [squash, archery, golf, judo, canoe, canoe, diving, squash, bowling, judo]
        System.out.println("Orignal LinkedList:" + linkedList);
        LinkedList<String> retainSportsList = new LinkedList<>();
        retainSportsList.add("golf");
        retainSportsList.add("diving");
        retainSportsList.add("archery");
        retainSportsList.add("badminton");
        System.out.println("Elements to be retained:"+retainSportsList);
        linkedList.retainAll(retainSportsList);
        //[archery, golf, diving]
        System.out.println("Elements retained in orignal linkedlist: " + linkedList);
    }
 
    private static void demoSortMethod(LinkedList<String> linkedList) {
        //[archery, golf, diving]
        System.out.println("Orignal LinkedList:" + linkedList);
        Collections.sort(linkedList);
        // [archery, diving, golf]
        System.out.println("1. Sort ascending order: " + linkedList);
 
        Collections.sort(linkedList, Collections.reverseOrder());
        // [golf, diving, archery]
        System.out.println("2. Sort desending order: " + linkedList);
    }
 
    private static void demoIterateMethod(LinkedList<String> linkedList) {
 
        System.out.println("1. Iterating using forEachRemaining:");
        // Output of for loop:
        // golf diving archery
        linkedList.forEach(element -> System.out.printf("%s ", element));
 
        System.out.println("\n2. Iterating linkedList using foreach loop:");
        // Output of for loop:
        // golf diving archery
        for (String element : linkedList) {
            System.out.printf("%s ", element);
        }
 
        System.out.println("\n3. Iterating linkedList using iterator:");
        ListIterator<String> listIterator = linkedList.listIterator();
        // Output of while loop:
        // golf diving archery
        while (listIterator.hasNext()) {
            System.out.printf("%s ", listIterator.next());
        }
        System.out.println("");
    }
 
}

Output – Add, remove, retain, sort etc. methods of linkedlist

Demo of remove methods:
Orignal LinkedList:[archery, badminton, canoe, boxing, canoe, diving, badminton, diving]
1. Removed element canoe from index 2: [archery, badminton, boxing, canoe, diving, badminton, diving]
2. Removed first element archery of linked list:[badminton, boxing, canoe, diving, badminton, diving]
3. Removed last element diving of linked list:[badminton, boxing, canoe, diving, badminton]
4. Removed boxing from linkedList: [badminton, canoe, diving, badminton]
5. Removed collection containing diving: [badminton, canoe, badminton]
6. Removed last occurence of badminton: [badminton, canoe]
7. Removed first occurence of badminton: [canoe]
 
Demo of add methods:
1. Orignal LinkedList:[canoe]
2. Added element at 0 and 2 index: [archery, canoe, canoe]
3. Added element in list: [archery, canoe, canoe, diving]
4. Added another list : [archery, canoe, canoe, diving, squash, bowling]
5. Added another list at index 1 : [archery, golf, judo, canoe, canoe, diving, squash, bowling]
6. Added element before head : [squash, archery, golf, judo, canoe, canoe, diving, squash, bowling]
7. Added element to after tail node : [squash, archery, golf, judo, canoe, canoe, diving, squash, bowling, judo]
 
Demo of retain method:
Orignal LinkedList:[squash, archery, golf, judo, canoe, canoe, diving, squash, bowling, judo]
Elements to be retained:[golf, diving, archery, badminton]
Elements retained in orignal linkedlist: [archery, golf, diving]
 
Sort elements of linkedList:
Orignal LinkedList:[archery, golf, diving]
1. Sort ascending order: [archery, diving, golf]
2. Sort desending order: [golf, diving, archery]
 
Iterate through linkedList:
1. Iterating using forEachRemaining:
golf diving archery
2. Iterating linkedList using foreach loop:
golf diving archery
3. Iterating linkedList using iterator:
golf diving archery
 
Demo of get method of linkedlist:
Element at index 0: golf
Element at index 2: archery
 
Demo of contains method of linkedlist:
Check linkedlist contains diving: true
Check linkedlist contains judo: false
 
Demo of clear method of linkedlist:
Clear linkedList: []