问题
我有一个Student对象的列表(我只是以这种方式编写了列表,以使其更具可读性):
class Student {
int id;
String name;
String department;
}
[
{"id": 1, "name": "some name 1", "department": "English"},
{"id": 2, "name": "some name 2", "department": "Maths"},
{"id": 3, "name": "some name 3", "department": "Science"}
]
我想根据部门的自定义顺序对该列表进行排序。
["Maths", "Science", "English"]
最终排序的列表应类似于:
[
{"id": 2, "name": "some name 2", "department": "Maths"},
{"id": 3, "name": "some name 3", "department": "Science"},
{"id": 1, "name": "some name 1", "department": "English"}
]
我尝试过的事情
我想要的
我想按ID排序,但在此之前..我也想对部门排序。部门的排序将基于部门列表。第一个应该是数学,第二个应该是科学,最后一个应该是英语。
我需要一些建议,例如如何以更好的性能实现这一目标。
答案 0 :(得分:1)
您可以创建一个枚举,其中包含不同部门的优先级。 即
enum SchoolDepartmentEnum{
ENGLISH(1,3,"English"),
MATHS(2,1,"Maths"),
SCIENCE(3,2,"Science");
constructor: SchoolDepartmentEnum(int id, int priority, string name);
}
然后创建一个Comparator类,该类将使用您创建的枚举中的优先级ID。