java - 为什么 Comparator.comparingInt 在 Java 的 Arrays.sort() 中不起作用?
问题描述
我正在尝试对 Interval 类的列表进行排序:
class Interval {
int start;
int end;
Interval() { start = 0; end = 0; }
Interval(int s, int e) { start = s; end = e; }
}
我尝试使用下面的代码:
Arrays.sort(intervals, Comparator.comparingInt(interval -> interval.start));
但它有编译错误:
java: no suitable method found for sort(java.util.List<Interval>,java.util.Comparator<java.lang.Object>)
method java.util.Arrays.<T>sort(T[],java.util.Comparator<? super T>) is not applicable
(cannot infer type-variable(s) T
(argument mismatch; java.util.List<Interval> cannot be converted to T[]))
method java.util.Arrays.<T>sort(T[],int,int,java.util.Comparator<? super T>) is not applicable
(cannot infer type-variable(s) T
(actual and formal argument lists differ in length))
但是,当我使用:
intervals.sort(Comparator.comparingInt(interval -> interval.start));
它工作正常。
这背后有什么原因吗?
解决方案
这背后有什么原因吗?
AList
不是一个数组(即使它是一个ArrayList
: 仅描述数据在内部的存储方式),因此不适用于接受数组参数的方法。
推荐阅读
- javascript - DiscordAPIError:未知消息(请帮助)
- python - 在 selenium 中设置代理
- reactjs - React 组件中是否有等效的“全局变量”?我正在尝试检测页面是否已刷新并采取相应措施
- javascript - 实现一个json集的参数
- symfony - DQL vs SQL,为什么我没有相同的结果?
- java - 为什么我的文本文件在 Java Eclipse 中没有作为字符串读取?
- php - Nette 数据库在 Symfony 5.2 命令中不起作用
- reactjs - 我正在制作一个类似火种的应用程序。我无法将数据库信息链接到我的 addToFavorite 函数,然后将它们发送到收藏页面
- sql - SQL 字段没有默认值 - 即使字段设置为默认 NULL
- github-actions - 如何仅针对特定分支上的标签有条件地运行 Github 工作流操作?