Java中的Arrays.sort(),升序降序?

article/2025/10/3 5:39:15

一、一维数组比较

1、默认升序

首先对于sort()函数来说默认是升序的

import java.util.Arrays;public class helloworld {public static void main(String[] args) {int[] arr={1,4,3,6,7,9};Arrays.sort(arr);System.out.println(Arrays.toString(arr));}
}

2、区间排序sort(T[] a,int formIndex, int toIndex)

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {Integer[] arr2={1,4,3,8,2,9,11,3};Arrays.sort(arr2,2,5);System.out.println(Arrays.toString(arr2));}
}

 

3、降序

如果想要降序,Arrays.sort(scores,Collections.reverseOrder());。

首先要注意的是不能用int这个类型了,要用Integer,不能使用基本类型(int,double, char),如果是int型需要改成Integer,float要改成Float

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {Integer[] arr2={1,4,3,6,7,9,11};Arrays.sort(arr2, Collections.reverseOrder());System.out.println(Arrays.toString(arr2));}
}

4、重载比较器进行降序

也可以重载比较器,自定义比较

import java.util.Arrays;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {Integer[] arr2={1,4,3,6,7,9};Arrays.sort(arr2, new Comparator<Integer>() {public int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println(Arrays.toString(arr2));}
}

 

 二维数组比较

1、按照第一元素比较

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {int[][] a1=new int[][]{{1,3},{1,2},{4,5},{3,7}};int[][] a2=new int[][]{{1,3},{1,2},{4,5},{3,7}};Arrays.sort(a1, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[0]-o2[0];}});System.out.println("按照第一元素比较  第一种方法");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a1[i]));}Arrays.sort(a2,(a, b)->(a[0]-b[0]));System.out.println("按照第一元素比较  第二种方法");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a2[i]));}}
}

若想第一元素相等,按第二元素比较 

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {int[][] a1=new int[][]{{1,3},{1,2},{4,5},{3,7}};int[][] a2=new int[][]{{1,3},{1,2},{4,5},{3,7}};Arrays.sort(a1, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {if(o1[0]==o2[0]){return o1[1]-o2[1];}return o1[0]-o2[0];}});System.out.println("按照第一元素比较 也可以比较第二元素 第一种方法");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a1[i]));}//        Arrays.sort(a2,(a, b)->(a[0]-b[0]));
//        System.out.println("按照第一元素比较  第二种方法");
//        for (int i = 0; i < a1.length; i++) {
//            System.out.println(Arrays.toString(a2[i]));
//        }}
}

 2、按照第二元素比较

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {int[][] a1=new int[][]{{1,3},{1,2},{4,5},{3,7}};int[][] a2=new int[][]{{1,3},{1,2},{4,5},{3,7}};Arrays.sort(a1, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[1]-o2[1];}});System.out.println("按照第二元素比较  第一种方法");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a1[i]));}Arrays.sort(a2,(a, b)->(a[1]-b[1]));System.out.println("按照第二元素比较  第二种方法");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a2[i]));}}
}

3、二维数组降序排序

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;public class helloworld {public static void main(String[] args) {int[][] a1=new int[][]{{1,3},{1,2},{4,5},{3,7}};int[][] a2=new int[][]{{1,3},{1,2},{4,5},{3,7}};Arrays.sort(a1, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o2[0]-o1[0];}});System.out.println("按照第一元素比较  第一种方法  降序");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a1[i]));}Arrays.sort(a2,(a, b)->(b[0]-a[0]));System.out.println("按照第一元素比较  第二种方法  降序");for (int i = 0; i < a1.length; i++) {System.out.println(Arrays.toString(a2[i]));}}
}

总结

对于Arrays.sort(),可以进行重载比较器来自定义比较,可以升序排序也可以降序排序

在重载或者Arrays.sort(a2,(a, b)->(b[0]-a[0]));中

我们观察(a,b),若a-b或者比较器里面return a-b,则是升序排序

若b-a或者比较器里面return b-a,则是降序排序。

 

 


http://chatgpt.dhexx.cn/article/2Fym92Xi.shtml

相关文章

Js如何实现升序和降序

前言 在网页中,实现列表的升序和降序,是一个比较常见的操作,尤其是在做一些数据栓选表格的时候,按照索引,时间等特定的参数,提供升序和降序排列的功能的 具体示例 sort 原生js 在原生js中主要是操作DOM,遍历节点,通过removeChild()删除节点,而使用appendChild()添加元素去实现的…

堆排序(升序降序)

堆排序是利用堆这种数据结构而设计的一种排序算法&#xff0c;堆排序是一种选择排序&#xff0c;它的最坏、最好、平均时间复杂度均为O(nlogn)&#xff0c;是不稳定排序。 小根堆&#xff08;最小堆&#xff09;&#xff1a;每个结点的值都<其左右孩子结点的值。 大根堆&…

python列表中的升序与降序

在使用python进行编程的时候&#xff0c;我们经常使用到列表&#xff0c;并需要对列表里的元素进行升降序操作&#xff0c;下面以一个简单的例子来展示python列表中的升序与降序操作。**例如&#xff1a;**输入三整数x,y,z,现在需要把这三数进行升序和降序操作 **tips:**使用 .…

Python 排序列表——如何按降序或升序排序

在 Python 中&#xff0c;你可以使用 sorted() 方法或 sort() 方法对数据进行排序。 在本文中&#xff0c;我将提供 sorted() 和 sort() 方法的代码示例&#xff0c;并解释两者之间的区别。 Python 排序列表——如何按降序或升序排序 在 Python 中&#xff0c;你可以使用 so…

C语言——选择排序(升序、降序)

举例出第一趟&#xff1a; 从a[0]开始找 遍历找最小值 第一趟排序后&#xff1a; B站“AF程序猿”视频中截到的 第二趟从a[1]开始…… &#xff08;随机生成我这里就指定10以内的了哈&#xff0c;方便看运行结果&#xff09; 程序&#xff08;升序&#xff09;&#xff1a; #…

java数组排序,升序和降序

文章目录 前言基本数据类型排序升序降序排列 基本数据类型包装类升序降序 对象排序升序降序 前言 对于数组的排序一直很疑惑&#xff0c;尤其是如何对数组进行降序排列&#xff0c;例如要对int[]类型的数组降序排列&#xff0c;这里来进行说明 基本数据类型排序 升序 int[]…

Java中的升序和降序

1.使用Arrays中的升序API&#xff08;sort&#xff09;进行升序 代码示例如下&#xff1a; public class px {public static void main(String[] args) {int[] a{11,55,99,66,22,88,33};System.out.println(Arrays.toString(a));//打印原有数组Arrays.sort(a);System.out.pri…

MySQL数据库升降序排序

在使用数据库时&#xff0c;我们可能要将数据按照从小到大&#xff0c;或者从大到小的顺序排序。这样我们就用到了升降序排序。 升序&#xff1a;从小到大&#xff08;asc&#xff09; 以这个表数据为例&#xff1a;从小到大排序 语法&#xff1a; select * from stu order …

Linux中查看bz2压缩文件大小,Linux bz2文件解压与压缩之bzip2命令

1. Linux系统上bz2的简介 在Linux运维中,我们经常看到.bz2后缀的文件,这是一种压缩文件,一般存在于Linux系统当中。本文介绍一下如何使用bzip2工具来压缩和解压bz2文件。 2. 安装bzip2 以CentOS系统为例,最小化安装的情况下,并没有集成bzip2。 [root@zcwyou ~]# bzip2 -ba…

linux 文件夹tar.bz2压缩命令,使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法...

本文介绍使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法。tar命令允许你创建和提取tar归档文件,它支持各种压缩程序,例如gzip、bzip2、lzip、lzma、lzop、xz和compress。Bzip2是用于压缩tar文件的最受欢迎的算法之一,按照约定,用bzip2压缩的tar归档文件的名称以.tar.bz…

window系统怎么解压tar.bz2文件

下载7zip工具选择要解压的文件&#xff0c;右键选择7zip > 打开压缩包 点击提取菜单&#xff0c;选择解压之后文件存放的路经 解压出来后是一个.tar格式的文件&#xff0c;此时再次解压即可 耐心等待解压完成 解压完成 欢迎小伙伴讨论&#xff0c;文章内容如有错误请在评论区…

Linux常用命令详解

Linux命令 命令提示符 打开终端时&#xff0c;我们输入信息的左边就是命令提示符&#xff0c;例如&#xff1a; Linux命令提示符结构&#xff1a; 普通用户boy&#xff1a;boyboy-virtual-machine:/$ 根用户root&#xff1a;rootboy-virtual-machine:/# 前面的是当前用户名b…

PHP验证码SESSION验证码图片不同步

PHP验证码SESSION验证码图片不同步 今天在做php登录验证的时候带验证码的&#xff0c;nc的在页面输出了下验证码的session&#xff0c;于是乎出现了戏剧性的一幕&#xff0c;session验证码和图片上的验证码不一样&#xff1f;那用户岂不是登陆不上了&#xff1f;但是奇怪的是用…

php 验证码 生成,PHP实现随机生成验证码功能

验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。当然,也可以封装成一个函数,以后使用的时候也是很方便的,但是现在未封装。…

php验证是否图片,php验证码图片不显示图片怎么办

php验证码图片不显示图片的解决办法&#xff1a;首先检查php是否安装gd扩展&#xff1b;然后在php目录下找到php.ini文件&#xff1b;最后将文件编码方式改为utf-8无DOM格式&#xff0c;并在header前清除缓存即可。 PHP图片验证码无法显示的解决方案 问题&#xff1a;使用php实…

php验证码刷新_php实现点击可刷新验证码

这篇文章主要介绍了php如何实现点击即可刷新验证码&#xff0c;代码很详细&#xff0c;值得大家学习&#xff0c;感兴趣的小伙伴们可以参考一下 验证码类文件 CreateImg.class.php width$width; $this->height$height; $this->codenum$codenum; } function outImg() { //…

php验证码显示乱码,如何解决php验证码乱码问题

php验证码乱码的解决办法&#xff1a;1、修改访问验证码生成方法函数的路径&#xff1b;2、修改文件编码&#xff0c;并去掉BOM头&#xff1b;3、检查验证码生成方法&#xff1b;4、修改服务环境。 具体问题&#xff1a; php验证码输出全是乱码...<?php session_start(); …

php实现登录验证码_php如何实现登录验证码

php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。 PHP实现简单的验证码功能机制 网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以…

php验证码类(分享)

//验证码类 class ValidateCode {private $charset abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789;//随机因子private $code;//验证码private $codelen 4;//验证码长度private $width 130;//宽度private $height 50;//高度private $img;//图形资源句柄private $font…

php验证码图片不显示怎么办,php 验证码图片无法显示怎么办

php验证码图片无法显示的解决办法&#xff1a;首先打开相应的PHP文件&#xff1b;然后在header输出之前添加代码为“ob_clean();”&#xff1b;最后保存修改即可。 本文操作环境&#xff1a;Windows7系统、PHP7.1版&#xff0c;DELL G3电脑 PHP验证码图片无法显示问题 我以为是…