Which Java class implements the List interface using a dynamic array?

The story behind the answer

The Java class that implements the `List` interface using a dynamic array is `ArrayList`.

`ArrayList` is part of the Java Collections Framework and stores its elements in an automatically resizable array. That design provides fast indexed access, typically constant-time, so retrieving an element with `get(index)` is efficient. When the internal array reaches capacity, the implementation allocates a larger array and moves the existing references into it.

This structure is a strong general-purpose choice when a program frequently reads elements by position or appends items at the end. Inserting or removing elements near the beginning or middle is slower because later elements must be shifted. `LinkedList`, by contrast, uses linked nodes and has different performance trade-offs; it is not the dynamic-array implementation asked for here.

`Vector` is also array-backed, but it is a legacy synchronized class rather than the usual modern answer. `HashMap` does not implement `List` at all: it stores key-value associations. `ArrayList` can hold duplicates and preserves insertion order, while its generic type parameter, such as `ArrayList<String>`, provides compile-time type checking.

Source: Wikipedia · fact-checked Aug. 2026

Add question to a list

Choose a list to keep this question in: