那么我有一个Arraylist<Course> 的list,该怎么对Course类里面的中文进行排序
时间: 2024-03-16 09:43:32 浏览: 115
Python实现针对中文排序的方法
5星 · 资源好评率100%
您可以使用 `Collections.sort` 方法对 `ArrayList<Course>` 进行排序,并通过实现 `Comparator` 接口来定义排序规则。
下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<Course> list = new ArrayList<>();
list.add(new Course("数学"));
list.add(new Course("语文"));
list.add(new Course("英语"));
// 定义中文排序规则
Comparator<Course> cmp = new Comparator<Course>() {
@Override
public int compare(Course c1, Course c2) {
return c1.getName().compareTo(c2.getName());
}
};
// 对list进行排序
Collections.sort(list, cmp);
// 输出排序结果
for (Course course : list) {
System.out.println(course.getName());
}
}
}
class Course {
private String name;
public Course(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```
在上面的代码中,我们定义了一个 `Comparator` 对象 `cmp`,并实现了 `compare` 方法来比较两个 `Course` 对象的中文名称。然后,我们使用 `Collections.sort` 方法对 `ArrayList<Course>` 进行排序,将 `cmp` 作为第二个参数传递给该方法。最后,我们遍历排序后的 `ArrayList` 并输出结果。
注意:在进行中文排序时,需要使用 `compareTo` 方法而不是 `compare` 方法来比较字符串。这是因为 `compare` 方法是按照字符编码进行比较的,而不是按照中文的语义进行比较的。
阅读全文