Use case: The list is used as a buffer, that is re-used and in each iteration the list is cleared. Now that clear() does not replace the data array there is no garbage collection and we do not have to allocated one or several new arrays in the next iteration. You can still free the associated memory by calling clear() + trim().