Простой способ (и рекомендуемый способ) из сортировка ArrayLists использует сопоставимый интерфейс или объект Comparator. Это очень легко понять, как только вы сделали это много раз, но немного сбиваете с толку, когда вы впервые начинаете. Вот пример объекта компаратора (непроверенного, но я думаю, что он должен работать - если объекты в массиве имеет типа «MyCustomObject»):
ArrayList<Integer> myArrayList = new ArrayList<MyCustomObject>();
myArrayList.add(new MyCustomObject(2));
myarrayList.add(new MyCustomObject(8));
myArrayList.add(new MyCustomObject(3));
// Here is the actual sorting:
Collections.sort(myArrayList, new Comparator<MyCustomObject>(){
public int compare(MyCustomObject o1, MyCustomObject o2){
if (o1.getNumber() > o2.getNumber()) return 1;
if (o1.getNumber() < o2.getNumber()) return -1;
return 0;
}
}
Если вы хотите изменить критерии сортировки, просто измените реализацию compare() внутри там - как реверсирование операторов if или сортировку в другом поле в ваших объектах. Если вы просто обратный, вы должны использовать reverseOrder(), как упоминалось другими в этом потоке.
Используйте 'Collections.sort (список, компаратор)' –
Извините, но не могли бы вы сказать мне метод с помощью выбора рода для этой сортировки в обратном порядке ... – user2947725
Поделиться в ArrayList определение, пожалуйста. –