Java Sorting: sort an array of objects by property, object not allowed to use Comparable

You can provide a Comparator for comparing any type you wish, Comparable or otherwise.

For Arrays and Collections you use

Arrays.sort(array, myComparator);
Collections.sort(list, myComparator);

Even sorted collections like TreeSet can take a custom Comparator

e.g.

Collections.sort(books, new Comparator<Book>() {
   public int compare(Book b1, Book b2) {
      return if b1 is greater return +1, if b2 is smaller return -1 otherwise 0
   }
});

Leave a Comment