Вы должны использовать Comparator или реализовать Comparable в своем пользовательском объекте.
Реализуя Comparable, вы определяете естественный порядок для ваших объектов.В методе Comparable.compareTo () необходимо сравнить текущий объект с другим и вернуть
- отрицательное целое число, если текущий объект "меньше" другого объекта;
- ноль, если текущий объект «равен» другому;
- положительное целое число, если текущий объект «больше» другого.
Пример:
public class CustomObject implements Comparable<CustomObject> {
@Override
public int compareTo(CustomObject otherOne) {
// Compare the current object with the otherOne and return an
// appropriate integer
return 0;
}
}
// To sort
Collections.sort(listOfCustomObjects);
С другой стороны, реализуя Comparator, вы можете указать критерии упорядочения вне кода пользовательского объекта.Используя соответствующий метод Collections.sort () , вы можете указать порядок объектов в коллекции.Метод Comparator.compare () следует тем же правилам, которые описаны выше.
Пример:
public class CustomObjectComparator implements Comparator<CustomObject> {
@Override
public int compare(CustomObject a, CustomObject b) {
// Compare a with b and return an appropriate integer
return 0;
}
}
// To sort
Collections.sort(list, new CustomObjectComparator());