В яве есть такой очень полезный класс java.util.Arrays, который содержит очень полезные методы для работы с массивами. Одним из таких методов является sort(), который позволяет сортировать что угодно и как угодно, для этого нужно лишь объяснить, каким образом мы хотим сравнивать лежащие в массиве объекты (именно объекты - простые типы данных sort умеет сортировать только по возрастанию).
Для того, чтобы объясниьт как мы хотим сравнивать между собой элементы массива, нам потребуется написать реализацию предназначенного для этого интерфейса java.util.Comparator. Этот интерфейс содержит метод public int compare(Object arg0, Object arg1), который должен возвращать
1, если arg0>arg1
0, если arg0=arg1
-1, если arg0<arg1
Таким образом для того, чтобы отсортировать некий массив mass, нужно написать
Arrays.sort(mass, new Comparator() {
public int compare(Object arg0, Object arg1) {
// TODO Здесь нужно написать требуемую реализацию этого метода
return 0;
}
});
Вызывать метод sort можно и не передавая ему компоратор (передать только массив), в этом случае будет использван компоратор по умолчанию, скорее всего сортирующий в порядке возрастания. Для простых типов данных (int, long итп) этот метод можно вызывать только без компоратора.
Так же имеется возможность отсортровать элементы в массиве только с одного определенного индекса по другой. Для этого есть такие методы как
Arrays.sort(Object[] mass, int fromIndex, int toIndex);
Arrays.sort(Object[] mass, int fromIndex, int toIndex, Comparator comporator);
И еще в пяотй яве есть типизация, поэтому компаратор лучше делать типизированным (не надо будет кастить Object аргументы метода compare к используемым классам). Например:
new Comparator<Integer>(){
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return 0;
}});