【发布时间】:2020-08-08 02:02:39
【问题描述】:
private List<Location> sortLocations(List<Location> locations, final Location myLocation) {
Comparator comp = new Comparator<Location>() {
@Override
public int compare(Location o1, Location o2) {
Float dist1 = o1.distanceTo(myLocation);
Float dist2 = o2.distanceTo(myLocation);
return dist1.compareTo(dist2);
}
};
Collections.sort(locations, comp);
return locations;
}
我想按最接近 myLocation 的顺序对位置列表进行排序。我的代码是否正确,因为问题是它没有按升序或降序排序。它只是随机的,甚至与数据库顺序不相似。但是原始位置列表和新位置列表相同..请帮助..
【问题讨论】:
-
你能添加你的
Location类 -
location 是一个 android 类。这不是问题。但是,如果您先自己测试它可能会很有用。如果它被反转,只需调用 Collections.reverse 之后
-
“我认为它不起作用”的描述性不足以帮助人们理解您的问题(您甚至不确定是否有问题!)。相反,描述确切观察到的行为以及预期的行为应该是什么。包括任何示例输入、预期/实际输出和任何错误消息的确切文本,包括任何异常的完整 stack trace(如果适用)以及堆栈跟踪指向的代码行。请参阅How to Ask 和How to create a Minimal, Reproducible Example。
-
问题是它不是升序或降序排序。它只是随机的,甚至与数据库顺序不相似。但是原始位置列表和新位置列表相同。
标签: java android sorting location comparator