java - 在 1 次迭代中从未排序的数组列表生成排序的数组列表?

标签 java

假设我有数组列表 A并比较 A 的 2 个对象我做a.getDistanceFromPlayer() < b.getDistanceFromPlayer() .

我现在想要列表 B这将包含所有 A的对象,但排序在第一个对象最接近玩家的位置,最后一个对象最远。

最快的方法是什么?

谢谢

最佳答案

让 A 实现 Comparable,然后像这样定义方法 compareTo(Object other):

public int compareTo(Object other) {
  if( this.getDistanceFromPlayer() < other.getDistanceFromPlayer() ) {
      return -1;
  } else if( this.getDistanceFromPlayer() > other.getDistanceFromPlayer())  {
      return 1;
  }
  return 0;
}

现在您可以在对象列表上调用 Collections.sort()

关于java - 在 1 次迭代中从未排序的数组列表生成排序的数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594208/

相关文章:

java - 如何使用 Maven 创建具有依赖项的可执行/可运行 JAR?

java - 如何在创建和更改 UI 的方法的同时运行播放歌曲的方法?

java - 将自定义注释 Hook 到 Maven 中的 JUnit 测试器

java - 当我在列表中使用这些图像的 Uris 时,如何使用图库使用 Intent 查看外部存储中的多个图像

java - 仅获取响应代码而不是 url 的完整来源

java - Ignite gridgain 生成的项目打开文件限制问题

java - 如何通过文件名检查文件是否存在于(内部/外部存储)?

java - 如何为 for 循环创建多线程?

java - 军用时间怎么搭配?

java - 单个 JTable 单元格中的多个对象