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 ...
随机推荐
- 统计学与R语言
书籍推荐 文末见下载链接. 主要有 :统计学习方法.R语言实战.统计学(贾俊平) 链接:百度网盘 提取码:提取码
- Luogu P3200 [HNOI2009]有趣的数列
题意 给定 \(n\),求有多少个长度为 \(2n\) 的排列 \(p\) 满足 对于 \(1\leq i\leq n\),\(p_{2i-1}<p_{2i}\). \(p_1<p_3&l ...
- PHP 获取当前页面的URL信息
//获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERER" ...
- Nginx 配置请求响应时间
1.常见默认nginx.conf配置日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request&quo ...
- Windows 端口被占用,但进程号对应的进程不存在,使用Get-Process来查找进程挺方便的
Windows上很少安装数据库,这次遇到一个小问题:数据库启动之后提示: 警告: 无法为 "*" 创建监听套接字 致命错误: 无法创建TCP/IP套接字 日志: 数据库系统已关闭 ...
- Python爬虫之多线程
详情点我跳转 关注公众号"轻松学编程"了解更多. 多线程 在介绍Python中的线程之前,先明确一个问题,Python中的多线程是假的多线程! 为什么这么说,我们先明确一个概念,全 ...
- 分享JDK解压版(ZIP)
目录 由于安装版本的jdk不太方便,所以我分享一下如何去获取解压版的jdk,jdk配置的话看这个文章 一.先下载exe版本的jdk安装程序: 二.使用7-ZIP解压工具 2.1 JDK8的解压目录 2 ...
- Python Tkinter小实例——模拟掷骰子
什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...
- fasd
基本排序算法 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 --> 冒泡排序 选择排序 外层从0开始默认oute ...
- Mybatis 批量更新遇到的小问题
小问题 记一个开发过程中因为小细节的遗漏而引发的 "莫名其妙",公司中有个2B(to B)供应链项目,持久层用的是 JPA,这里我就不吐槽 JPA 了,这种 SQL 嵌入在代码里的 ...