【问题标题】:How to sort list of objects? [duplicate]如何对对象列表进行排序? [复制]
【发布时间】:2018-11-17 17:46:15
【问题描述】:

我有一个对象列表,每个对象都有一个方法可以返回从玩家到所述对象的距离

object.distance(player)

现在我需要将该列表从 loqwest 距离排序到最远

【问题讨论】:

  • 你试过什么?您具体需要哪些帮助?
  • 您对此有何看法。你会怎么解决呢?
  • 我尝试遍历列表并使用键存储每个对象的数组距离,然后排序并返回第一个,但有更好的方法吗?
  • 我认为更多代码在这里会有所帮助。本质上是you sort using a comparator,但如果有某个对象的List,我不确定player 来自哪里。

标签: java sorting


【解决方案1】:

你可以在java中使用接口java.lang.Comparable

示例(伪代码)假设 object.distance(player) 返回一个整数值

class Distance implements Comparable<Distance>{
  /**
    * Compare a given Distance with this object.
    */
    public int compareTo(Distance o) {
        return this.distance(player).compareTo(o.distance(o.player));
    }
}

现在您可以像

一样对列表进行排序
Collections.sort(YourListOfDistance)

这里有一些参考

When should a class be Comparable and/or Comparator?

【讨论】:

    猜你喜欢
    • 2018-07-21
    • 2016-03-21
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多