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 ...
随机推荐
- Vue.js 学习笔记之六:构建更复杂的组件
在掌握了如何构建与编译 Vue 组件的基础知识之后,接下来就可以试着来构建一些更具有实际用处的复杂组件了.为了赋予组件更具实用性的后面,首先要做的就是让这些组件具备监听用户自定义事件的能力,并且允许用 ...
- 【新阁教育】穷学上位机系列——搭建STEP7仿真环境
经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真 ...
- 1.流程控制--if
流程控制--if -*- coding:utf-8 -*- #定义字符编码 1.判断条件if age = input("输入年龄:") #将交互式输入内容赋值给age,默认内容为字 ...
- layuiu按钮
1.关于layui图标 唯一要提的是这是一个矢量图标 因此可以像对待文字一样加上style = font-size 以及color属性 eg: <i class="layui-ico ...
- .NetMvc从http或本地下载pdf文件
1.帮助类 1 public static class PdfHelper 2 { 3 #region 从http链接下载 4 public static void Download(string u ...
- 01MySQL数据库介绍
一.数据库基本介绍 目标:了解数据库的功能和常见数据库分类.数据库产品 数据库基本知识 数据库分类 SQL简介 MySQL访问 1.数据库基本知识 目标:了解数据库的概念和数据库的作用 概念 数据库: ...
- Pandas_数据清洗与整理_全
# 数据清洗与整(全) # 1) 常见的数据清洗方法 # 2) 数据合并:多源数据的合并和连接 # 3) 数据重塑:针对层次化索引,学会 stack和 unstack # 4) 字符串处理:学会 Da ...
- 如何删除一台OSD主机
在ceph的一台OSD主机出现故障的时候,数据可以通过副本的机制进行恢复,之后通过删除osd的操作也能够将故障osd从osd tree当中删除掉,但是故障的 osd 的主机仍然会留在集群当中,通过 c ...
- 痞子衡嵌入式:JLink Script文件基础及其在IAR下调用方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是JLink Script文件基础及其在IAR下调用方法. JLink可以说是MCU开发者最熟悉的调试工具了,相比于其他调试器(比如DAP ...
- Struts2漏洞渗透笔记
虽然这是一次失败的渗透,但是也学到不少新姿势. 目标机环境:①外网②win2012③360全家桶 一,利用Struts2终极利用工具上传一句话 jsp的一句话,有时候会出现兼容问题.比如Cknife的 ...