Nitish Upreti
Nitish Upreti

Reputation: 6550

Sorting a part of Java ArrayList

What is the most efficient way of sorting only a part of ArrayList? Say all elements from index 0 to 3 in an Arraylist which contains 10 elements.

Is there a library function available in Java?

Apart from Collections.sort(list) which sorts the entire List!

Writing a highly optimised custom sort function will take some work.

Upvotes: 30

Views: 18039

Answers (2)

Suraj Chandran
Suraj Chandran

Reputation: 24791

In Java 8+, use List#sort.

list.subList(0,3).sort(null) ;

In earlier Java:

Collections.sort(list.subList(0,3));

Note: '3' here is excluded from sorting.

To quote the documentation:

public List subList(int fromIndex, int toIndex)

Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive.

Upvotes: 64

anirvan
anirvan

Reputation: 4877

use the subList [inherited from AbstractList] method in ArrayList. And then use Collections.sort() on that sub-list. That is if writing a highly optimised custom sort function is truly hard work.

Upvotes: 6

Related Questions