【发布时间】:2017-01-18 01:06:13
【问题描述】:
我很难按两个属性对对象列表进行排序。
我的对象车有 3 个属性。名称、类型、价格。
我需要按类型和价格(从最低到最高)订购。
该类型由字符串(EDMR、CMMD、JGAD、MDMR 等)填充,并且需要按首字母排序。顺序必须是M 比E 比C 比any 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 比任何其他字母都优先。
-
你还是得先自己试试。严重地。在尝试中你会失去什么?