我一直在努力的东西,需要我对象(软饮料)由三个属性排序- name (str),colour (str)和volume (int).我已经研究过,并找到了通过名称,颜色和体积分别订购它们的方法,但有没有办法按三种方式订购它们?
我的意思是:例如,假设有四个SoftDrink对象:Fanta Orange 500,Coke Red 500,Coke Silver 500 Fanta Orange 400.
我正在寻找的输出将是:
- 1)可乐红500
- 2)可乐银500
- 3)芬达橙400
- 4)芬达橙500
首先按名称排序,然后按颜色排序,然后按体积(升序)排序.
我现在使用三个比较器:nameComparator,colourComparator和volumeComparator,但是每个比较器只按名称排序对象,然后仅按颜色排序,然后按体积排序.是否可以使用Comparator根据多个属性进行排序?
Sha*_*dov 12
尝试这样的事情:
drinks.sort(
Comparator.comparing(Drink::getName).thenComparing(Drink::getColour).thenComparing(Drink::getVolume)
);
Run Code Online (Sandbox Code Playgroud)
记得有干将为您的属性(getName,getColour等等).这就是您所需要的,无需任何自定义比较器或任何东西.
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |