gpt4 book ai didi

java - 为什么 Comparator.comparingInt 不能在 Java 中的 Arrays.sort() 中工作?

转载 作者:行者123 更新时间:2023-12-01 17:50:50 26 4
gpt4 key购买 nike

我正在尝试对 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));

工作正常。

这背后有什么原因吗?

最佳答案

Any reasons behind this?

List 不是一个数组(即使它是一个 ArrayList:仅描述数据如何在内部存储),因此不适用于接受数组参数。

关于java - 为什么 Comparator.comparingInt 不能在 Java 中的 Arrays.sort() 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50344178/

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