【发布时间】:2023-03-09 20:57:01
【问题描述】:
我有一个动物列表,其中有 3 种类型 TIGER、DOG、ANT,它们还有一个字段确定需要排序的顺序
public class Animal {
private final AnimalType animalType;
private final int orderNumber;
public Animal(AnimalType animalType, int orderNumber) {
this.animalType = animalType;
this.orderNumber = orderNumber;
}
public int getOrderNumber() {
return orderNumber;
}
public AnimalType getAnimalType() {
return animalType;
}
}
public enum AnimalType {
TIGER("tiger"),
DOG("dog"),
ANT("ant");
}
列表需要先TIGER再DOG再ANT排序,而且每个Animal都有一个顺序号
如果我们有这个:
List<Animal> animals = new ArrayList<>();
animals.add(new Animal(TIGER, 2));
animals.add(new Animal(DOG, 5));
animals.add(new Animal(ANT, 1));
animals.add(new Animal(ANT, 3));
animals.add(new Animal(TIGER, 3));
animals.add(new Animal(DOG, 4));
animals.add(new Animal(TIGER, 1));
animals.add(new Animal(DOG, 2));
animals.add(new Animal(DOG, 1));
animals.add(new Animal(ANT, 2));
animals.add(new Animal(DOG, 3));
排序后应该是这样的
new Animal(TIGER, 1);
new Animal(TIGER, 2);
new Animal(TIGER, 3);
new Animal(DOG, 1);
new Animal(DOG, 2);
new Animal(DOG, 3);
new Animal(DOG, 4);
new Animal(DOG, 5);
new Animal(ANT, 1);
new Animal(ANT, 2);
new Animal(ANT, 3);
最好的排序方法是什么?我使用的是 Android,所以它应该是 Java 7。
【问题讨论】:
-
问题不够具体,请考虑使用 Java 标记
标签: android algorithm performance sorting collections