2 回答

TA貢獻1835條經驗 獲得超7個贊
首先,您為您的寵物類實現 Comparable 接口,并向您的 Pet 類添加一個比較方法,該方法返回一個整數(如果此寵物大于其他寵物,則返回一個整數(+ve),否則為負數。
class Pet implements Comparable{
String name;
int weight;
int height;
public int compareTo(Pet otherPet){
if(weight > otherPet.weight){
return 1;
}
else if(weight = otherPet.weight){
if(height > otherPet.height){
return 1;
}
}
else{
return -1;
}
}
}
實現該接口可讓您使用此行對數組進行排序
Collections.sort(Pets);

TA貢獻1811條經驗 獲得超4個贊
選項 1:使用自定義比較器
如果要對Pet數組進行排序pets,可以使用Array.sort()并提供Comparator:
Arrays.sort(pets, Comparator.comparing(Pet::getWeight).thenComparing(Pet::getHeight));
我假設你有體重和身高的吸氣劑。
如果兩只寵物的重量相同,這會將您的陣列從最輕到最重以及從最小到最高排序。
您可以在Pets構造函數中調用它:
public Pets(Pet[] pets){
Arrays.sort(pets, ...);
this.pets = pets;
}
選項 2:實現 Comparable 接口
或者,您可以修改您的類以實現Comparable并實現方法 CompareTo():
public class Pet implements Comparable<Pet>{
...
@Override
public int compareTo(Pet o) {
int result = Integer.compare(this.height, o.height);
if(result != 0) return result;
else return Integer.compare(this.weight, o.weight);
}
}
然后你可以簡單地調用:
Arrays.sort(pets)
添加回答
舉報