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: []