如何订购相对于其他属性的属性?
问题描述:
我需要知道如何按照其他属性排序属性。例如。如果我有一个名为水果的类,它具有名称,价格,颜色,库存数量等属性,并且它已经存储在一个对象数组中。我怀疑它将如何能够安排水果价格关于该水果的名称和颜色的订单(升序或降序)如何订购相对于其他属性的属性?
答
您可以在您的类Laptop
中实施Comparable
,并在compareTo方法中定义顺序。
public class Laptop implements Comparable<Laptop>{
public int compareTo(Laptop compareLaptop) {
//logic here
}
}
然后只要致电:
List<Laptop> laptops = new ArrayList<Laptop>();
Collections.sort(laptops);
很好的教程:http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/
答
在Java 8,你可以写
List<Laptop> sorted = laptops.stream()
.sort(comparing(Laptop::getCapacity).reversed()
.thenComparing(Laptop::getSpeed))
.collect(toList()):
这可以,如果你定义自定义比较来完成。 – kai 2014-09-01 13:04:14
@ kai,发表您的评论作为答案 – AlexR 2014-09-01 13:07:02