我有一个包含ArrayList<Task> tasks
的Task
类。我想做的是创建一个排序方法,让用户选择如何对此ArrayList任务进行排序。必须是main
中的用户调用该方法,将排序方法作为参数传递,然后在Task类中完成。我该怎么做呢?
发布于 2021-06-07 00:21:53
您应该通过引入如下方法来利用比较器接口:
void sort(List<Task> tasks, Comparator<Task> comparator) {
tasks.sort(comparator);
}
根据task类的任务id字段对列表进行排序的上述方法的示例用法:
sort(tasks, Comparator.comparing(task -> task.getTaskId())
请注意,排序方法为void,这意味着它改变了原始任务列表。如果你必须保持原始列表的完整性,那么sort的实现应该如下所示:
List<Task> sort(List<Task> tasks, Comparator<Task> comparator) {
return tasks.stream().sorted(comparator).collect(Collectors.toList());
}
https://stackoverflow.com/questions/67860341
复制相似问题