java数组排序,升序和降序

article/2025/10/3 6:38:12

文章目录

  • 前言
  • 基本数据类型排序
    • 升序
    • 降序排列
  • 基本数据类型包装类
    • 升序
    • 降序
  • 对象排序
    • 升序
    • 降序

前言

对于数组的排序一直很疑惑,尤其是如何对数组进行降序排列,例如要对int[]类型的数组降序排列,这里来进行说明

基本数据类型排序

升序

int[] nums = {4, 3, 5, 2, 6, 1,7};

如果我们要对上面代码进行升序排列,我们只需要调用Arrays.sort的方法即可

在这里插入图片描述
将数组传入即可,支持基本数据类型,这个sort就会对数组进行排序

Arrays.sort(nums);

排序后输出结果如下

[1, 2, 3, 4, 5, 6, 7]

降序排列

对于基本数据类型,并没有现成的api,但是我们可以将排序后的数组进行翻转

        int[] nums = {4, 3, 5, 2, 6, 1,7};Arrays.sort(nums);// 翻转数组for (int i = 0; i < nums.length / 2; i++) {int t = nums[i];nums[i] = nums[nums.length - i - 1];nums[nums.length - i - 1] = t;}System.out.println(Arrays.toString(nums));

输出结果如下

[7, 6, 5, 4, 3, 2, 1]

基本数据类型包装类

升序

用基本数据类型的包装类来进行升序排列调用Aarrays.sort即可

		Integer[] nums = {4, 3, 5, 2, 6, 1,7};Arrays.sort(nums);System.out.println(Arrays.toString(nums));

降序

如果要降序排列,在sort后面传入一个Comparator接口即可,下面我使用的是lambda表达式,如果是o1-o2表示升序,o2-o1表示降序,具体的在下面的对象排序里面讲

		Integer[] nums = {4, 3, 5, 2, 6, 1, 7};Arrays.sort(nums, (o1, o2) -> o2 - o1);System.out.println(Arrays.toString(nums));

输出内容如下

[7, 6, 5, 4, 3, 2, 1]

对象排序

升序

下面是我自定义的一个Cat类

class Cat {String name;int age;public Cat(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' +", age=" + age +'}';}
}

初始的Cat类数组如下

        Cat[] cats = {new Cat("大黄", 2),new Cat("小黑",1),new Cat("旺财", 3),new Cat("大黑", 4)};

该数组没排序前输出如下

Cat{name='大黄', age=2}
Cat{name='小黑', age=1}
Cat{name='旺财', age=3}
Cat{name='大黑', age=4}

下面我想对年龄进行排序,我们使用的也是Arrays.sort

在这里插入图片描述
我们需要传入一个Comparator,new一个,实现里面的compare方法即可,sort会根据compare返回的值来进行排序,如果返回负数就会将前面个值放到前面

		Arrays.sort(cats, new Comparator<Cat>() {@Overridepublic int compare(Cat cat1, Cat cat2) {return cat1.age - cat2.age;}});

或者使用lambda表达式

Arrays.sort(cats, (cat1, cat2) -> cat1.age - cat2.age);

也可以写成下面这种写法

Arrays.sort(cats, Comparator.comparingInt(cat -> cat.age));

最后的一种写法就表示使用Cat的age属性来进行比较,三种写法输出结果都是升序排列的,如下

Cat{name='小黑', age=1}
Cat{name='大黄', age=2}
Cat{name='旺财', age=3}
Cat{name='大黑', age=4}

降序

会升序排列了,降序就是将compare的结果变成相反就行了

        Arrays.sort(cats, new Comparator<Cat>() {@Overridepublic int compare(Cat cat1, Cat cat2) {return cat2.age - cat1.age;}});

lambda写法如下

Arrays.sort(cats, (cat1, cat2) -> cat2.age - cat1.age);

我们也可以这样写

Arrays.sort(cats, Comparator.comparingInt(cat -> -cat.age));

输出结果都是降序排列的

Cat{name='大黑', age=4}
Cat{name='旺财', age=3}
Cat{name='大黄', age=2}
Cat{name='小黑', age=1}

http://chatgpt.dhexx.cn/article/9fKXhy0t.shtml

相关文章

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验证码图片无法显示问题 我以为是…

PHP验证码不能显示的问题

最近学校学习任务需要用到验证码&#xff0c;敲完代码后运行时发现验证码并没有生效&#xff0c;上官网查看才发现原来是自己的GD库没有配置&#xff0c;需要我们对php.ini文件进行配置 1、载入GD库 在php.ini文件中写入extensionphp_gd.dll 2、在php.ini文件中开启gd.jpeg_i…

php 验证码功能的实现原理,php验证码实现原理

PHP验证码实现原理 生成随机数或者字母保存到session中(验证验证码的时候用),然后对生成的数字或者字母进行绘图!然后呈现在我们眼前 刷新验证码:用js改变验证码图片所带的参数,让浏览器不读缓存的图片,从而实现刷新验证码效果! 代码示例 $str"QWERTYUIOPASDFGHJKLZXCVBNM…

php验证码刷新_php验证码刷新与局部刷新

欢迎进入Linux社区论坛&#xff0c;与200万技术人员互动交流 >>进入 实现php 验证码调用时的刷新与局部刷新&#xff0c;这二种情况在网站开发中均有使用。 一、验证码刷新 代码示例&#xff1a; form method"post" name"login" action"" …

php 验证码不正确,php验证码提示错误

问题&#xff1a;新服务器配置好后&#xff0c;部署了php网站&#xff0c;网站打开和显示都正常在用户登录时总是提示验证码错误。(输入了正确的验证码) 原因分析&#xff1a; 1、session问题 session中没有记住验证码&#xff0c;应该是php的session文件夹权限问题。 处理方法…

php 验证码一直不对,php验证码错误

问题&#xff1a; 新服务器配置好后&#xff0c;部署了php网站&#xff0c;网站打开和显示都正常&#xff0c;但是在用户登录时总是提示验证码错误。(输入了正确的验证码) 原因分析 1、session问题 session中没有记住验证码&#xff0c;这个应该是php的session文件夹权限问题。…

PHP笔记-验证码例子

注意需要先把php_gd2.dll放开&#xff1a; php.ini文件修改。 如下验证码效果&#xff1a; 代码如下&#xff1a; Captcha.php <?phpnamespace vendor;class Captcha{public static function getCaptcha($width 450, $height 65, $length 4, $fonts ""){if…