我正在尝试根据纬度和经度与用户当前位置的距离来排序列表。我曾尝试使用比较器,但似乎无法使其正常工作。我尝试了多种实现比较器的方法,包括使用arraylist,并尝试了多种在线教程。我当时在考虑使用一个集合然后对其进行排序,但实际上并不知道该如何做。我是否在正确的轨道上?我的代码如下。如果有人能指出我正确的方向,那就太好了。非常感谢!
end=''
答案 0 :(得分:2)
在伪代码中,它应该看起来像这样
public class DistanceComparator implements Comparator<Location> {
private Location current;
public DistanceComparator(Location loc) {
current = loc;
}
@Override
public int compare(Location l1, Location l2) {
int distance1 = calculateDistance(current, l1); // your code to calculate distance
int distance2 = calculateDistance(current, l2);
if (distance1 < distance2) return -1;
if (distance1 == distance2) return 0;
return 1;
}
}