Java ArrayList trimToSize()

The syntax of the trimToSize() method is:

arraylist.trimToSize();

Here, arraylist is an object of the ArrayList class.


trimToSize() Parameters

The trimToSize() method does not take any parameters


trimToSize() Return Value

The trimToSize() method does not return any value. Rather, it only changes the capacity of the arraylist.


Example 1: Java ArrayList trimToSize()

import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList<String> languages = new ArrayList<>();

        // add element to ArrayList
        languages.add("Java");
        languages.add("Python");
        languages.add("JavaScript");
        System.out.println("ArrayList: " + languages);

        // trim capacity to 3
        languages.trimToSize();
        System.out.println("Size of ArrayList: " + languages.size());
    }
}

Output

ArrayList: [Java, Python, JavaScript]
Size of ArrayList: 3

In the above example, we have created two arraylists named languages. The arraylist contains 3 elements. Notice the line,

languages.trimToSize();

Here, the trimToSize() method sets the capacity of arraylist equal to the number of elements in languages (i.e. 3).

We have used the ArrayList size() method to get the number of elements in the arraylist.


Advantage of ArrayList trimToSize()

We know that the capacity of ArrayList is dynamically changed. So what is the advantage of using ArrayList trimToSize() method?

To understand the advantage of trimToSize() method, we need to look into the working of ArrayList.

Internally, ArrayList uses an array to store all its elements. Now, at some point, the array will be filled. When the internal array is full, a new array is created with 1.5 times more capacity than the current array. And, all elements are moved to the new array.

For example, suppose the internal array is full and we have to add only 1 element. Here, the ArrayList will expand with the same ratio (i.e. 1.5 times the previous array).

In this case, there will be some unassigned space in the internal array. Hence, the trimToSize() method removes the unassigned space and changes the capacity of arraylist equal to the number of elements in the arraylist.

This working of ArrayList trimToSize() method is not visible to the user.