вы можете поместить 2 метода в ваш класс Поставщика, один для задания расстояния путем указания координат и один для его получения;что-то вроде:
void setDistance(long latitude, long longitude) {
// calcultate distance and set it
//...
this.distance = distance;
}
long getDistance() {
return this.distance;
}
тогда, после поиска ваших поставщиков, вы можете использовать компаратор для их сортировки;что-то вроде:
Collections.sort(suppliers, new Comparator<Supplier>(){
public int compare(Supplier o1, Supplier o2) {
return new Long(o1.getDistance()).compare(o2.getDistance());
}
});
Я не скомпилировал этот код;поэтому он может содержать некоторые синтаксические ошибки, но это сделает работу.Вы даже можете вместо анонимного класса создать класс, такой как Comparator_distance, в котором вы можете установить координаты для вычисления расстояния от вас, поэтому вам не нужно устанавливать расстояние в поставщиках, но вы можете вычислить его при сравнении.Это кажется мне чище.
Если вы хотите разбить на страницы результаты, просто разберитесь, прежде чем разбивать на страницы, иначе вы получите неправильные результаты.