所以我试着像标题所说的那样对数组列表进行排序。我有一个超类叫做 Thing
有两个不同的子类 HeavyThing
和一个 LightThing
. arraylist只包含2个子类,我需要对它进行排序,以便 HeavyThing
出现在 LightThing
. 到目前为止,我得到了排序方法来处理事物的名称,但是我无法按子类对其进行排序。
this.collThings.sort(new Comparator<Thing>() {
public int compare(Thing t1, Thing t2) {
return Integer.valueOf(t1.getName().compareTo(t2.getName()));
}
});
我就是这样按名字排序的。
1条答案
按热度按时间yhxst69z1#
您可以创建一个比较器链,然后作为第一步比较类的简单名称。这将使
HeavyThing
之前LightThing
因为按照字典顺序H
在前面L
. 然后可以按名称进行子排序: