我被这个问题所困扰,我想看看对此有何普遍看法。
我有一些实体,即部门商店,便利店和食品中心等,它们链接到一个数据库,该数据库有一个表格,该实体可以返回其相关信息,例如他们的名字,地点等。
我想将我的应用程序的距离从用户的位置排序到各种地标,例如我的数据库中可能有4个百货商店,便利店和食品中心,并且应用程序上的用户输出将是
食物中心A(100米)
百货商店A(120米)
食品中心B(200米)
便利店A(220米)依此类推等等。
据我所知,如果我想以这种方式对其进行排序,我将不得不研究多态,即在诸如标志性实体之类的公共类下扩展这些类。并为具有里程碑意义的实体创建比较器。
我想知道是否有其他方法可以根据距离实现这种排序,因为我想到的是创建ArrayList<Landmark>
并添加各种不同的实体。
还有其他方法可以达到这个目的吗?
感谢任何帮助。
答案 0 :(得分:0)
我会使用一个对象,距离中间类:
@Data
public class ToSort<T> {
private T entity;
private double distanceToUser;
}
然后为它实施一个比较器(基于distanceToUser
)以对ToSort
列表进行排序。
注意:“距离”作为键,对象也可以作为值使用“多图”(例如TreeMultimap
,但您需要每个T
具有可比性。)