Java List Interface
Learn Java through interactive, bite-sized lessons. Practice with real code challenges and build applications.
Start Java Journey →The List interface is a fundamental part of Java's Collections Framework. It represents an ordered collection of elements, allowing duplicate values and providing precise control over where elements are inserted in the list.
Key Features of List Interface
- Ordered collection (elements maintain their insertion order)
- Allows duplicate elements
- Provides positional access to elements
- Implements the Java Interface Collection
Common Implementations
Java provides several implementations of the List interface:
- ArrayList: Backed by a dynamic array, offering fast random access
- LinkedList: Implemented as a doubly-linked list, efficient for insertions and deletions
- Vector: Similar to ArrayList but synchronized (thread-safe)
- Stack: Extends Vector, implements Last-In-First-Out (LIFO) stack
Basic Usage
Here's a simple example of creating and using a List:
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
System.out.println(fruits); // Output: [Apple, Banana, Cherry]
System.out.println("Size: " + fruits.size()); // Output: Size: 3
System.out.println("Contains Banana? " + fruits.contains("Banana")); // Output: true
}
}
Common List Methods
| Method | Description |
|---|---|
| add(E element) | Adds an element to the end of the list |
| add(int index, E element) | Inserts an element at the specified position |
| get(int index) | Returns the element at the specified position |
| remove(int index) | Removes the element at the specified position |
| set(int index, E element) | Replaces the element at the specified position |
| size() | Returns the number of elements in the list |
| clear() | Removes all elements from the list |
Iterating Through a List
There are several ways to iterate through a List in Java:
List<String> colors = Arrays.asList("Red", "Green", "Blue");
// Using enhanced for loop
for (String color : colors) {
System.out.println(color);
}
// Using iterator
Iterator<String> iterator = colors.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// Using forEach method (Java 8+)
colors.forEach(System.out::println);
List vs Set
While both List and Set are collection interfaces, they have key differences:
- List allows duplicate elements; Set does not
- List maintains insertion order; Set may not (depends on implementation)
- List provides positional access; Set does not
Best Practices
- Use the interface type (List) in variable declarations for better flexibility
- Choose the appropriate implementation based on your use case (e.g., ArrayList for frequent access, LinkedList for frequent insertions/deletions)
- Utilize Java Generics to ensure type safety
- Consider using immutable lists (List.of() in Java 9+) for read-only data
The List interface is a versatile tool in Java programming. It provides a flexible way to store and manipulate ordered collections of elements, making it essential for many data processing tasks.