如何解决使用以下代码对数组进行排序时出现错误
我能够获得输出:
int arr[][]={{1,2},{2,3},{3,4},{1,3}};
Arrays.sort(arr,(a,b)->(b[0]-a[0]));
但这显示了错误:
int arr[]={1,2,3,4,5,6};
Arrays.sort(arr,b)->(b-a));
Error: method Arrays.<T#1>sort(T#1[],Comparator<? super T#1>) is not applicable
我在这里想念什么?
解决方法
没有Arrays.sort()
接受int[]
和Comparator
的变体,这不足为奇,因为您不能定义Comparator<int>
(通用类型参数必须为参考类型)。
如果将数组更改为Integer[]
,它将起作用:
Integer[] arr={1,2,3,4,5,6};
Arrays.sort(arr,(a,b)->(b-a));
您的第一个代码段有效,因为您的第一个(2D)数组的元素类型是int[]
(int
个数组),并且数组是引用类型。因此,它符合public static <T> void sort(T[] a,Comparator<? super T> c)
方法的签名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。