gpt4 book ai didi

java - 对多态数组进行排序

转载 作者:行者123 更新时间:2023-12-02 04:35:09 25 4
gpt4 key购买 nike

假设我有 3 个类(乘客、飞行员、空姐),它们继承自一个名为 Persons 的抽象类,并且在一个 Persons 数组中,我从已定义的 3 个类中保存了许多这些对象,但是我想按以下顺序对 Person 数组内的这些对象进行排序:

-Passenger 类中的所有对象

-Pilot 类中的所有对象

-Stewardess 类中的所有对象

有没有办法在没有ArrayList的情况下实现这一点?

最佳答案

Arrays.sort(personArray, new Comparator<Person>() {

@Override
public int compare(Person p1, Person p2) {
int person1Index = getOrderIndex(p1);
int person2Index = getOrderIndex(p2);

if (person1Index < person2Index) {
return -1;
} else if (person1Index > person2Index) {
return 1;
} else {
return 0;
}
}

private int getOrderIndex(Person p) {
if (p == null) {
return 0;
} else if (p instanceof Passenger) {
return 1;
} else if (p instanceof Pilot) {
return 2;
} else if (p instanceof Stewardess) {
return 3;
} else {
throw new RuntimeException("Unexpected person type: " + p.getClass().getName());
}
}
});

关于java - 对多态数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com