发布
社区首页 >问答首页 >如何在java中将排序方法作为参数传递

如何在java中将排序方法作为参数传递
EN

Stack Overflow用户
提问于 2021-06-06 22:46:43
回答 1查看 76关注 0票数 0

我有一个包含ArrayList<Task> tasksTask类。我想做的是创建一个排序方法,让用户选择如何对此ArrayList任务进行排序。必须是main中的用户调用该方法,将排序方法作为参数传递,然后在Task类中完成。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2021-06-07 00:21:53

您应该通过引入如下方法来利用比较器接口:

代码语言:javascript
代码运行次数:0
复制
void sort(List<Task> tasks, Comparator<Task> comparator) {
   tasks.sort(comparator);
}

根据task类的任务id字段对列表进行排序的上述方法的示例用法:

代码语言:javascript
代码运行次数:0
复制
sort(tasks, Comparator.comparing(task -> task.getTaskId())

请注意,排序方法为void,这意味着它改变了原始任务列表。如果你必须保持原始列表的完整性,那么sort的实现应该如下所示:

代码语言:javascript
代码运行次数:0
复制
List<Task> sort(List<Task> tasks, Comparator<Task> comparator) {
   return tasks.stream().sorted(comparator).collect(Collectors.toList());
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67860341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档