我有一个对象列表,其中包含不同类型的对象,但单个属性在所有对象中都很常见。
列表包含Field类,Button类,Page类等对象,但所有属性之间都具有一个共同点,即“sequence_no”和
我想基于“sequence_no”对该列表进行排序。
最佳答案
我建议使用方法Sequenceable
创建一个类似于“getSequenceNo()
”的接口。
public interface Sequenceable {
int getSequenceNo();
}
您的
Field
,Button
和Page
类应实现此接口,并且getSequenceNo()
方法将返回sequence_no
。然后,您可以实现自己的
Comparator
并使用此比较器进行排序。例如,您的比较器将如下所示:
class MyComparator implements Comparator<Sequenceable> {
@Override
public int compare(Sequenceable o1, Sequenceable o2) {
return o2.getSequenceNo() - o1.getSequenceNo();
}
}
然后您可以排序:
Collections.sort(list, new MyComparator());