我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。

升序

使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步:

导入 java.util.Arrays 包。

使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。

假设在数组 scores 中存放了 5 名学生的成绩,现在要实现从低到高排列的功能。在这里使用 Arrays.sort() 方法来实现,具体代码如下:

public static void main(String[] args) {

// 定义含有5个元素的数组

double[] scores = new double[] { 78, 45, 85, 97, 87 };

System.out.println("排序前数组内容如下:");

// 对scores数组进行循环遍历

for (int i = 0; i < scores.length; i++) {

System.out.print(scores[i] + "\t");

}

System.out.println("\n排序后的数组内容如下:");

// 对数组进行排序

Arrays.sort(scores);

// 遍历排序后的数组

for (int j = 0; j < scores.length; j++) {

System.out.print(scores[j] + "\t");

}

}

如上述代码所示,要对一个数组进行升序排列,只需要调用 Arrays.sort() 方法即可。运行后的输出结果如下所示。

排序前数组内容如下:

78.0 45.0 85.0 97.0 87.0

排序后的数组内容如下:

45.0 78.0 85.0 87.0 97.0

降序

在 Java 语言中使用 sort 实现降序有两种方法,简单了解即可。

1)利用 Collections.reverseOrder() 方法(Collections 是一个包装类。大家可以学习《Java Collections类》一节详细了解):

public static void main(String[] args) {

Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 }; // 数组类型为Integer

Arrays.sort(a, Collections.reverseOrder());

for (int arr : a) {

System.out.print(arr + " ");

}

}

输出结果如下:

9 8 7 6 5 4 3 2 1 0

2)实现 Comparator 接口的复写 compare() 方法,代码如下:

public class Test {

public static void main(String[] args) {

/*

* 注意,要想改变默认的排列顺序,不能使用基本类型(int,double,char)而要使用它们对应的类

*/

Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 };

// 定义一个自定义类MyComparator的对象

Comparator cmp = new MyComparator();

Arrays.sort(a, cmp);

for (int arr : a) {

System.out.print(arr + " ");

}

}

}

// 实现Comparator接口

class MyComparator implements Comparator {

@Override

public int compare(Integer o1, Integer o2) {

/*

* 如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值, 这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了

*/

return o2 - o1;

}

}

输出结果如下所示。

9 8 7 6 5 4 3 2 1 0

注意:使用以上两种方法时,数组必须是包装类型,否则会编译不通过。

在 Java 中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法,有兴趣的读者可以尝试编写。

java中升序 降序怎么表示_Java sort()数组排序(升序和降序)相关推荐

  1. java 数组升序排序_Java sort()数组排序升序详解

    下面的文章要给大家讲到的就是Java sort()数组排序方面的知识,主要会给大家讲到升序,下面的话就一起来进行一下了解吧. 使用java.util.Arrays类当中的sort()方法对数组进行升序 ...

  2. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2 ...

  3. java中random方法取值范围_java中最值的求法,你可能忽略了这种方法了!

    对一批数据进行排序,然后找出其中的最大值或最小值,这是基本的数据结构知识.在Java中我们可以通过编写算法的方式,也可以通过数组先排序再取值的方式来实现.下面以求最大值为例,解释一下多种算法. 自行实 ...

  4. java中截取后几位字符串_java截取字符串后几位

    java中常用的字符串的截取方法_计算机软件及应用_IT/计算机_专业资料.jsp中常见使用技术,js,jstl,eclipse,java 1.length() 字符串的长度 例:char chars ...

  5. java中怎么让一个数倒转_java 输入一个数字,反转输出这个数字的值(实现方法)

    java 输入一个数字,反转输出这个数字的值(实现方法) 如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public ...

  6. java中出现循环问题如何解决_java如何解决循环引用

    Excel 循环引用产生的原因及解决方法 来源:excel 格子社区 我们打开 ... (Garbage Collection Thread) , 来跟踪每一块分配出去的内存空间, Java 虚拟机 ...

  7. java中基本字节输出流类是_java中基本输入输出流的解释

    网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同:向客户传送数据与写入一个文件也没有什么区别. Java中输入 ...

  8. java中char是几个字节_Java中char占用几个字节

    在讨论这个问题之前,我们需要先区分unicode和UTF. unicode :统一的字符编号,仅仅提供字符与编号间映射.符号数量在不断增加,已超百万.详细:[https://zh.wikipedia. ...

  9. java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势

    image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...

最新文章

  1. linux下git的简单使用
  2. 数据存储方案-闭包表
  3. [css] 使用css如何设置背景虚化?
  4. Linux 查看磁盘空间实现代码介绍
  5. aws rds监控慢sql_使用AWS Lambda函数自动启动/停止AWS RDS SQL Server
  6. 海量ICLR论文点评公开,用这几个工具可以读得更轻松
  7. BZOJ2934 : [Poi1999]祭坛问题
  8. 【控制】《最优控制理论与系统》-胡寿松老师-第4章-动态规划
  9. 关于ESP8266和ESP8285的对比
  10. windows Delete键和Backspace键的区别
  11. C#导出Excel那些事
  12. 服务器虚拟机的c盘怎么加,xp虚拟机c盘怎么扩容
  13. 免费微信小程序,发一发打造微信小程序Saas营销服务移动工具箱
  14. \t\t让米饭更好吃
  15. 商务通怎么做html留言板,网站商务通对话框设置技巧
  16. 操作系统教程(第5版)习题解答
  17. 迅为龙芯2K1000开发板Linux环境变量
  18. 电商api—拼多多搜索
  19. 【软考软件评测师】2011年下综合知识历年真题
  20. Java多线程与并发库高级应用架构

热门文章

  1. Word处理控件Aspose.Words功能演示:使用 C++ 拆分 MS Word 文档
  2. 简易火车票订购系统(入门)Python
  3. 二十五【补充】.python字符串反序切片
  4. CentOS7下无界面使用Selenium+chromedriver进行自动化测试
  5. STM32的总线AMBA、AHB、APB
  6. PHP之 composer
  7. 工科top1——清华大学出招生简章了,一起来看看吧
  8. mysql ignoretable_做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table【转】...
  9. 拉卡拉电子合同签约测试参数接入
  10. (一)Java解析XML:XML基本概念的理解