社区
Java SE
帖子详情
为什么数组的sort方法的逆序排序对int数组会报错而Integer就可以?
qq_24683975
2020-05-14 11:11:43
...全文
399
2
打赏
收藏
为什么数组的sort方法的逆序排序对int数组会报错而Integer就可以?
[图片]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qybao
2020-05-15
打赏
举报
回复
int是基本类型,根据需要会自动包装成Integer,但int[]不会自动包装成Integer[],因为int[]是对象(用new生成的,显然就知道是对象了) Collections的reverseOrder接收的数组对象,要求的数组元素是对象类型(里面可能会调用comoareTo方法之类的),而int[]的元素是int基本类型,所以会出错。
qq_39936465
2020-05-15
打赏
举报
回复
引用 楼主 qq_24683975 的回复:
int是基本类型,所以不是Object类的子类,转换不了。一般来说int会被自动装包成Integer类型,但是看来这个方法中没有这个功能。
JAVA基础之
int
[]
数组
逆序
排序
有一个
int
[],
数组
内有一定数量的元素,将该
数组
内元素按
逆序
排序
,解析所使用方案的优缺点。假定
数组
int
[] arrs={5,1,6,3,4,9,22,65,77}。
java的
int
数组
逆序
排序
Arrays.
sort
(
int
[])只有正序
排序
,但是没法
逆序
排序
,加Comparator也不行,因为它要求元素是对象而不是基础数据类型。 这里的做法是将
int
转为
Int
eger
再用Comparator去
逆序
,最后转回
int
数组
。
int
[] nums = {1, 2, 0, 3, 5, 4}; // 倒序
排序
nums =
Int
Stream.of(nums) // 变为
Int
Stream .boxed(
java的
int
数组
和List列表
逆序
排序
(装箱为
Int
eger
类型)
java的
int
数组
和List列表
逆序
排序
(装
Int
eger
类型)
int
类型
数组
的自然
排序
,
int
类型
数组
转
Int
eger
类型
数组
,
Int
eger
数组
逆序
排序
方法
import java.util.Arrays; import java.util.Comparator; import java.util.Random; /*
int
类型
数组
的自然
排序
int
类型
数组
转
Int
eger
类型
数组
Int
eger
数组
逆序
排序
方法
*/ public class Test { public static void main(String[] args) { Random r = new Random();
int
[] array = n
通过Arrays.
sort
对
int
数组
进行
逆序
报错
Java的Arrays.
sort
()仅支持对**引用数据类型**进行自定义
排序
,如果是基本数据类型(如
int
类型),将无法使用Comparator进行自定义
排序
。
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章