Sorting a Collection


You put your data into a collection in random order or used a Properties object that doesn’t preserve the order, and now you want it sorted.


Use the static method Arrays.sort( ) or Collections.sort( ), optionally providing a Comparator.


If your data is in an array, you can sort it using the static sort( ) method of the Arrays utility class. If it is in a collection, you can use the static sort( ) method of the Collections class. Here is a set of strings being sorted, first in an Array and then in a Vector:

public class SortArray {
    public static void main(String[] unused) {
        String[] strings = {
        for (int i=0; i<strings.length; i++)

public class SortCollection {
    public static void main(String[] unused) {
        Vector v = new Vector(  );
        for (int i=0; i<v.size(  ); i++)

What if the default sort ordering isn’t what you want? Well, there is a Comparator interface, and you can create an object that implements it and pass that as the second argument to sort. Fortunately, for the most common ordering next to the default, you don’t have to; there is a public constant String.CASE_INSENSITIVE_ORDER that can be passed as this second argument. The String class defines it as “a Comparator that orders String objects ...

Get Java Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.