Java内置包装类
7 Java数组处理
7.1 Java数组简介
7.2 Java一维数组
7.3 Java二维数组
7.4 Java多维数组
7.5 Java不规则数组
7.6 Java数组也是一种数据类型
7.7 Java中到底有没有多维数组(长篇神文)?
7.8 Java Arrays工具类
7.9 Java中数组和字符串的相互转换
7.10 Java比较数组
7.11 Java数组填充
7.12 Java数组查找指定元素
7.13 Java复制数组
7.14 Java sort()数组排序
7.15 Java冒泡排序法
7.16 Java快速排序法
7.17 Java选择排序法
7.18 Java直接插入排序法
7.19 对Java数组的总结
7.20 Java求数组元素的最大和最小值
7.21 【Java项目实战】数字转人民币读法
7.22 Java统计商品信息
7.23 Java商品信息查询
7.24 【Java项目实战】输出杨辉三角形(使用二维数组)
7.25 【Java项目实战】五子棋游戏
Java类和对象 Java继承和多态 Java异常处理 Java集合、泛型和枚举 Java反射机制 Java输入/输出流 Java注解
我们在学习 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<Integer> { @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 中实现数组排序的方式很多,除了利用以上的几种方法外,还可以编写自定义方法来实现自己的排序算法,有兴趣的读者可以尝试编写。

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

微信扫码关注公众号