根据属性对对象的 ArrayList 进行自定义随机排序

Custom Random sorting of ArrayList of Objects based on an attribute

我有一个 POJO 列表。我想根据需求文档中给出的自定义顺序中的一个属性对该列表进行排序。该属性为字符串类型。没有可能的自然排序,因为所需的顺序不遵循字母顺序或任何其他顺序。除了手动操作之外,还有什么方法可以解决这个问题吗?

手动是什么意思?你总是可以做

Collections.sort(yourList, new Comparator<String>(){
//implement your compare method in the way your doc describes it
});

是的。编写您自己的 Comparator 自定义排序您的元素 ,然后将其传递给 Collections.sort()

您需要实现 Comparable 接口并覆盖 compareTo() 方法。

例如:假设如果你想根据学生 ID 对学生列表进行排序,那么你可以这样做:

@Override
public int compareTo(Student stu) {
    return (this.id - stu.id);
}

我使用了比较器和定义的 排序顺序(这是我要找的东西)。这将给我按我想要的顺序排序的列表。