java 数组反转的一个小坑

本文探讨了Java8中Stream结合Comparator.reverseOrder()方法实现数组元素反向排序的过程。通过具体示例,解释了该方法并非直接反转数组,而是依据ASCII码值进行从大到小的排序。代码演示了不同数据类型下reverseOrder()的应用。

因为学习了java8的内容,所有想用java8中的stream操作实现对数组的反转

在尝试过程中,发现Comparator下面有reverseOrder()方法,按照字面意思理解以为是将数组进行反转
然而实际尝试过程中发现,该方法实际实现并没有对数组进行反转,而是将其中的按照从大到小排列

代码如下:

		String []str={"a","c","d","b"};
        System.out.println("字符串1"+Arrays.toString(Arrays.stream(str).sorted(Comparator.reverseOrder()).toArray()));
        int []intnum={1,0,4,3};
        String []str2={"as","cv","ds","bsadf"};
        System.out.println("字符串2"+Arrays.toString(Arrays.stream(str2).sorted(Comparator.reverseOrder()).toArray()));

运行结果如下:
结果

可以看出,这里面默认的排序是按照第一个字符的ASKII编码进行排序的,然后从大到小

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值