JavaLinkedList
Java LinkedList
In the previous chapter, you learned about theArrayList class. TheLinkedList class is almost identical to theArrayList:
Example
// Import the LinkedList classimport java.util.LinkedList;public class Main { public static void main(String[] args) { LinkedList<String> cars = new LinkedList<String>(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); System.out.println(cars); }}ArrayList vs. LinkedList
TheLinkedList class is a collection which can contain many objects of the same type,just like theArrayList.
TheLinkedList class has the same methods asArrayList because both follow theList interface.This means you can add, change, remove, or clear elements in aLinkedList just like you would with anArrayList.
However, while theArrayList class and theLinkedList class can be used in the same way,they are built very differently.
How the ArrayList works
TheArrayList class has a regular array inside it. When an element is added, it is placedinto the array. If the array is not big enough, a new, larger array is created to replace theold one and the old one is removed.
How the LinkedList works
TheLinkedList stores its elements in "containers." The list has a link to the first containerand each container has a link to the next container in the list. To add an element to the list,the element is placed into a new container and that container is linked to one of the othercontainers in the list.
When To Use
Use anArrayList for storing and accessing data, andLinkedList to manipulate data.
LinkedList Methods
For many cases, theArrayList is more efficient as it is common to need access torandom elements in the list, but theLinkedList provides several methods to do certainoperations more efficiently:
| Method | Description | Try it |
|---|---|---|
addFirst() | Adds an element to the beginning of the list | Try it » |
addLast() | Add an element to the end of the list | Try it » |
removeFirst() | Remove an element from the beginning of the list | Try it » |
removeLast() | Remove an element from the end of the list | Try it » |
getFirst() | Get the element at the beginning of the list | Try it » |
getLast() | Get the element at the end of the list | Try it » |
The var Keyword
From Java 10, you can use thevar keyword to declare aLinkedList variable without writing the type twice. The compiler figures out the type from the value you assign.
This makes code shorter,but many developers still use the full type for clarity. Sincevar is valid Java, you may see it in other code, so it's good to know that it exists:
Example
// Without varLinkedList<String> cars = new LinkedList<String>();// With varvar cars = new LinkedList<String>();The List Interface
Note: Sometimes you will see bothList andLinkedList in Java code, like this:
import java.util.List;import java.util.LinkedList;List<String> cars = new LinkedList<>();This means the variable (cars) is declared as aList (the interface), but it stores aLinkedList object (the actual list). SinceLinkedList implements theList interface, this is possible.
It works the same way, but some developers prefer this style because it gives them more flexibility to change the type later.
Complete LinkedList Reference
For a complete reference of LinkedList methods, go to ourJava LinkedList Reference.

