Java 用 sort 实现对数组的升序和降序排序

  • 一、ArrayList 的升序与降序
  • 二、数组升序
  • 三、数组降序
    • 方法一
    • 方法二

一、ArrayList 的升序与降序

升序:Collections.sort(arr)

降序:Collections.sort(arr,Collections.reverseOrder())

注:reverse()是倒序

String str = "qwewq";
String str1 =new StringBuilder(str).reverse().toString();

二、数组升序

使用 java.util.Arrays 类中的 sort() 方法对数组进行升序

Arrays.sort(array) 对数组进行排序,排序规则是从小到大,即升序。

用例:

假设在数组 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 是一个包装类):

import java.util.*;public static void main(String[] args) {Integer[] a = { 9, 8, 7, 2, 3, 4, 1, 0, 6, 5 };    // 数组类型为IntegerArrays.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() 方法,代码如下:

import java.util.*;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<Integer> {@Overridepublic 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】用sort实现对数组的升序和降序排序相关推荐

  1. Java 8 –按值对HashMap进行升序和降序排序

    在上一篇文章中,我向您展示了如何通过键对Java 8中的Map进行排序 ,今天,我将教您如何使用Java 8功能(例如,lambda表达式,方法引用,流和新方法) 按值对Map进行排序.添加到java ...

  2. python升序和降序排序sort_【python】 sort、sorted高级排序技巧

    这篇文章主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下 Python list内置sort()方法用来排序,也可以用python内 ...

  3. php表格单元格怎么实现排序,angularjs,_angular表格点击序号进行升序,降序排序,怎么实现。,angularjs - phpStudy...

    angular表格点击序号进行升序,降序排序,怎么实现. 序号内容姓名地点时间序号 {{$index + 1}}{{$index + 1}}{{$index + 1}}{{$index + 1}}{{ ...

  4. python怎么升序和降序排序?

    python怎么升序和降序排序 推荐:<python视频教程> 1.首先打开cmd命令提示符,输入指令"ipython"打开python的命令行工具: 2.在命令行中先 ...

  5. python怎么升序和降序排序

    python怎么升序和降序排序 1.首先打开cmd命令提示符,输入指令"ipython"打开python的命令行工具: 2.在命令行中先定义一个变量number数组,里面写入几个数 ...

  6. java怎么对数组中数据进行降序排序?

    首先,想实现降序排序我们需要了解两个介绍Collections集合的两个方法: 一个是按照从小到大的排序sort方法. Collections.sort(); List<Integer> ...

  7. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序,对列表内的元组升序和降序排序

    1.python对IP地址列表排序 # -*- coding: utf-8 -*-import socket listIP = ['10.5.11.1', '192.168.1.33', '10.5. ...

  8. 5.10 数据的升序和降序排序 [原创Excel教程]

    原文:http://coolketang.com/staticOffice/5a97f32ad50eee266a9bbac7.html 1. 本节课将为您演示,如何对工作表中的数据进行升序或降序排列. ...

  9. python升序和降序排序_python中序列的排序,包括字典排序、列表排序、升序、降序、逆序...

    一.基础概念 我们知道python中的内建序列包括字典.列表.元组.字符串等,序列是python中最基本的数据结构. 列表.元组.字符串这类的序列的索引默认第一个元素的索引从0开始,第二个元素的索引是 ...

最新文章

  1. linux telnet localhost 25,telnet localhost 25 没反应. 大家帮忙看下什么问题...
  2. ubuntu使用root权限登录的设置方法
  3. JavaScript中带有示例的Math.log10()方法
  4. requestfacade 这个是什么类?_Java 的大 Class 到底是什么?
  5. 正则表达式验证密码强度
  6. ubuntu18.04升级cmake
  7. 强烈推荐!入门大数据分析必看的知识点总结,适合零基础学习
  8. 工信部:短信可为 16 亿用户提供行程证明;OPPO 回应造芯计划;Windows Terminal 0.9 发布| 极客头条...
  9. android 监听 h5 window,H5嵌入APP后,通过window.WebViewJavascriptBridge原生APP与H5之间交互...
  10. bzoj 2152: 聪聪可可(树的点分治)
  11. [转]中国青岛发布新一代CPU桥片“星光青桥一号”
  12. AntDsign菜单高亮
  13. 国产计算机系统哪个好,5大国产手机操作系统分析评测,你更中意谁?
  14. 数据库系统概论判断题
  15. 摄氏度符号英文计算机语言,英文摄氏度°C符号的正确输法
  16. 牛牛的猜球游戏(前缀和+逆交换)
  17. r语言中mpg数据_R语言数据分析系列之五
  18. 转载新闻 你应该知道的一些 Linux 技巧
  19. 东南西北十字图_怎么辨别东南西北的方向 分清东南西北口诀与窍门技巧(图)...
  20. 6款逆天黑科技,颜值爆表,瞬间提升你的手机逼格!

热门文章

  1. Java基础面试题/知识点总结
  2. 三分钟教你怎么把EPUB转MOBI
  3. 现代数学的基本概念:数学是一门研究数量、结构、变化以及空间等基本概念和方法的学科,数学的本质在于研究数学对象之间的关系。
  4. 【Python】什么是python对象
  5. Java安全之对称加密、非对称加密、数字签名
  6. 中汽研渗透测试_中国汽车技术研究中心王长园:V2X标准分析及测试方法探讨
  7. 六款优秀的开源协作编辑工具
  8. 广东最新中级消防设施操作员机考真题及答案
  9. Unity assetstore资源商店 地址
  10. The beatles-Yesterday