gpt4 book ai didi

java - 如何按类对 arrayList 中的对象进行排序?

转载 作者:行者123 更新时间:2023-12-01 20:53:44 28 4
gpt4 key购买 nike

我有一个ArrayList其中包含 2 种类型的对象(来自类 Student 的对象和来自类 Teacher 的对象)。

我的问题是如何对其进行排序,以便来自 Student 的所有对象首先出现,然后是来自类 Teacher 的所有对象出现在他们之后。

例如:学生1、学生2、学生3、教师1、教师2、教师3

这是我的代码:

public ArrayList sortList(){

ArrayList<Student> students = new ArrayList<Student>();
ArrayList<Teacher> teachers = new ArrayList<Teacher>();
ArrayList<Person> university = new ArrayList<Person>();
for(Person p : list){
if(p.getClass().getSimpleName().equals("Teacher")){
teachers.add((Teacher)p);
};
if(p.getClass().getSimpleName().equals("Student")){
students.add((Student)p);
}
university.addAll(students);
university.addAll(teachers);
}
return university;
}

最佳答案

您可以使用Collections.sort(list,comparator)

在比较器中,您可以比较类名称,因为(幸运的是)S 在字母表中位于 T 之前:

   List<Object> studentsAndTeachers = // ...
Collections.sort(studentsAndTeachers, (o1, o2) -> o1.getClass().getName().compareTo(o2.getClass().getName()));

因为您必须首先应用其他排序标准或扩展比较器来识别它们......

关于java - 如何按类对 arrayList 中的对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42761305/

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