Java设计实现 - 基于位置

时间:2013-10-20 10:56:06

标签: java oop

我被这个问题所困扰,我想看看对此有何普遍看法。

我有一些实体,即部门商店,便利店和食品中心等,它们链接到一个数据库,该数据库有一个表格,该实体可以返回其相关信息,例如他们的名字,地点等。

我想将我的应用程序的距离从用户的位置排序到各种地标,例如我的数据库中可能有4个百货商店,便利店和食品中心,并且应用程序上的用户输出将是

  1. 食物中心A(100米)

  2. 百货商店A(120米)

  3. 食品中心B(200米)

  4. 便利店A(220米)依此类推等等。

  5. 据我所知,如果我想以这种方式对其进行排序,我将不得不研究多态,即在诸如标志性实体之类的公共类下扩展这些类。并为具有里程碑意义的实体创建比较器。

    我想知道是否有其他方法可以根据距离实现这种排序,因为我想到的是创建ArrayList<Landmark>并添加各种不同的实体。

    还有其他方法可以达到这个目的吗?

    感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我会使用一个对象,距离中间类:

@Data
public class ToSort<T> {
    private T entity;
    private double distanceToUser;
}

然后为它实施一个比较器(基于distanceToUser)以对ToSort列表进行排序。

注意:“距离”作为键,对象也可以作为值使用“多图”(例如TreeMultimap,但您需要每个T具有可比性。)