Java里的数组降序
Java升序容易,降序不易。
基本类型不能降序,至少要是包装类。
升序使用Arrays.sort()
降序要么使用Collections.reverse,要么实现Comparator接口
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TestJava升序降序 {
public static void m1升序() {
int _arr[] = { 5, 3, 1, 2, 4 };
// 类,或包装类
Arrays.sort(_arr);
System.out.println("升序 输出数组:");
for (int i : _arr) {
System.out.print(i);
}
System.out.println();
}
public static void _printArr(String _msg, Integer _arr[]) {
System.out.println(_msg + " 输出数组:");
for (Integer i : _arr) {
System.out.print("\t" + i);
}
System.out.println();
}
public static void 降序_Comparator版() {
// 类,或包装类
Integer[] _arr = { 5, 3, 1, 2, 4 };
// -----------------------------------------------
Arrays.sort(_arr, new DescComparator());
_printArr("降序sort版(实现独立的Comparator)", _arr);
// -----------------------------------------------
_arr = new Integer[] { 5, 3, 1, 2, 4 };
Arrays.sort(_arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
_printArr("降序sort版(Comparator匿名内部类)", _arr);
// -----------------------------------------------
_arr = new Integer[] { 5, 3, 1, 2, 4 };
Arrays.sort(_arr, (Integer o1, Integer o2) -> o2 - o1);
_printArr("降序sort版(Comparator的Lambda表达式)", _arr);
}
public static void 降序_集合转置版() {
Integer _arr[] = { 5, 3, 1, 2, 4 };
// 1.排序
Arrays.sort(_arr);
// 2.转成List
List<Integer> asList = Arrays.asList(_arr);
// 3.借助集合的reverse方法
Collections.reverse(asList);
_printArr("降序_集合转置版", _arr);
}
public static void main(String[] args) {
m1升序();
降序_Comparator版();
降序_集合转置版();
}
}
class DescComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
}
运行结果:
升序 输出数组:
12345
降序sort版(实现独立的Comparator) 输出数组:
5 4 3 2 1
降序sort版(Comparator匿名内部类) 输出数组:
5 4 3 2 1
降序sort版(Comparator的Lambda表达式) 输出数组:
5 4 3 2 1
降序_集合转置版 输出数组:
5 4 3 2 1
Java里的数组降序的更多相关文章
- java,sort的数组降序
1.Array.sort(数组,起始位置,结束位置).这个是升序排序. 2.关于数组的降序实现如下: 利用Collections.reverseOrder()方法: import java.util. ...
- java数组降序排序之冒泡排序
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- 【转】java comparator 升序、降序、倒序从源码角度理解
原文链接:https://blog.csdn.net/u013066244/article/details/78997869 环境jdk:1.7+ 前言之前我写过关于comparator的理解,但是都 ...
- (转载)Java里新建数组及ArrayList java不允许泛型数组
java中新建数组: String[] s;//定义的时候不需要设置大小 s = new String[5];//为数组分配空间时就要设置大小 对于ArrayList, ArrayList< ...
- java将一数组乱序排列
JAVA的Collections类中shuffle方法模拟了“洗牌”动作可以对list列表进行随机排序.如果一定要自己写,算法也很简单:假设数组array长度为n.用标准随机函数rand(n)生成[0 ...
- Java中sort实现降序排序
利用Collections的reverseOrder方法: import java.util.Arrays; import java.util.Collections; public class Ma ...
- java里的数组和list分别在什么情况下使用?
数组长度固定,List未限定长度,且支持的功能更多,最常用的ArrayList底层实际上也是使用数组实现. 不需要复杂功能和确定长度的情况下,使用数组效率更高,通常情况建议使用List.
- Java用sort实现对数组的降序排序
在调用Arrays.sort()对数组进行排序时,默认是升序排序的,如果想让数组降序排序,有下面两种方法: 利用Collections的reverseOrder import java.util.*; ...
- java中的选择排序之降序排列
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
随机推荐
- STM32入门系列-使用库函数点亮LED,LED初始化函数
要点亮LED,需要完成LED的驱动, 在工程模板上新建一个led.c和led.h文件,将其存放在led文件夹内.这两个文件需要我们自己编写. 通常xxx.c文件用于存放编写的驱动程序,xxx.h文件用 ...
- 请教:Effective Java 第120页,代码运行未重现报错
在阅读<Effective Java 第二版>时,尝试编写重现第120页问题,发现未重现报错信息,可以正常运行并输出结果.有知道原因的请在评论中留言指导一下,谢谢!!! 问题如下
- scrapy反反爬虫
反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...
- ZOJ 1005 Jugs(BFS)
Jugs In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with th ...
- 完美实现CSS垂直居中的11种方法
在做前端项目时CSS的水平居中我们经常使用,但有时还会用到CSS垂直居中,对于小白来说这个就有些难度了,下面看一下我是如何实现的 本人前端小白,正在做一个小程序开发的项目,css样式调整搞的头都大了. ...
- 【有奖众测】给HMS Core文档提建议,赢大奖华为Watch!
为了提升HMS Core开发者的文档体验,提升开发效率,邀请所有开发者体验HMS Core文档,并贡献您的建议. 无论是文档让您困惑的地方,还是您发现的问题,或者您觉得可以做的更好的地方,都可以尽情的 ...
- 说一说packet poll 错误掩码的一个bug tcp udp packet poll细节有所不同 处理时需要注意
今天处理一个cpu标高的bug,原因:在poll 返回后将error事件当做POLLIN事件处理,fd 一直都在唤醒线程处理,但是rcv的时候没有数据: unsigned int datagram_p ...
- 极客mysql06
两阶段锁:在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放, 而是要等到事务结束时才释放. 建议:如果你的事务中需要锁多个行,要把最可能造成锁冲突.最可能影响并发度的锁 ...
- CDC(跨时钟域)和亚稳态
- cgroup实践-资源控制
1.Cgroup安装 安装Cgroups需要libcap-devel和libcgroup两个相关的包 yum install gcc libcap-devel 2.Cgroup挂载配置 Cgroup对 ...