【问题标题】:JAVA - Complex Sorting of an Object List [duplicate]JAVA - 对象列表的复杂排序
【发布时间】:2017-01-18 01:06:13
【问题描述】:

我很难按两个属性对对象列表进行排序。

我的对象车有 3 个属性。名称、类型、价格。

我需要按类型和价格(从最低到最高)订购。

该类型由字符串(EDMR、CMMD、JGAD、MDMR 等)填充,并且需要按首字母排序。顺序必须是MECany other letter 更早。

我需要得到类似的东西:

Peugeot 107     - MCMR - 22.50
Nissan Micra    - MCMR - 25.50
Peugeot 107     - MCMR - 30.05
Opel Corsa      - EDMN - 29.50
Opel Corsa      - EDMN - 31.50
Volkswagen Golf - CDMR - 48.00
Mercedes A Class- ICAV - 80.00
Mercedes        - TVBN - 100.00

请有人帮助我。我现在真的不知道如何管理它。

非常感谢你们抽出宝贵的时间。

【问题讨论】:

  • 天哪,还有so many similar questions easily available。在提出以前可能被问过(这里 -- 很多次)的问题时,请先搜索。
  • 简而言之,您应该让您的Car 类实现Comparable 接口。覆盖compareTo 方法并在那里处理您的比较逻辑。当您对列表进行排序时,它将使用您定义的 compareTo 方法。
  • 或使用比较器,但同样,这些选项在类似问题中都有很好的描述。至于您的 compare 或 compareTo 方法细节,应该首先尝试解决。我的猜测是,您会为自己的能力感到惊讶。
  • 我看到了关于按多个属性排序的类似主题,但没有人像我需要的那样进行排序。我真的不知道如何排序:M 比 E 比 C 比任何其他字母都优先。
  • 你还是得先自己试试。严重地。在尝试中你会失去什么?

标签: java sorting


【解决方案1】:

您可以尝试重写 Car 类中的 compareTo 方法,然后使用 Collections 中的 sort 方法对 Car 对象进行排序。

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2016-01-07
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多