ripper234 ripper234 - 1 year ago 58
Java Question

Shrinking an ArrayList to a new size

Do I really need to implement it myself?

private void shrinkListTo(ArrayList<Result> list, int newSize) {
for (int i = list.size() - 1; i >= newSize; --i)

mP. mP.
Answer Source

Create a sublist with the range of elements you wish to remove and then call clear on the returned list.

list.subList(23, 45).clear()

This approach is mentioned as an idiom in the documentation for both List and ArrayList.

Here's a fully unit tested code example!

// limit yourHappyList to ten items
int k = yourHappyList.size();
if ( k > 10 )
    yourHappyList.subList(10, k).clear();
    // sic k, not k-1
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download