1.14 sort()数组排序(升序和降序)
生活随笔
收集整理的這篇文章主要介紹了
1.14 sort()数组排序(升序和降序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 語言使用 Arrays 類提供的 sort() 方法來對數組進行排序。
升序
使用 java.util.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 是一個包裝類。):
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 02)實現 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> {@Overridepublic int compare(Integer o1, Integer o2) {/** 如果o1小于o2,我們就返回正值,如果o1大于o2我們就返回負值, 這樣顛倒一下,就可以實現降序排序了,反之即可自定義升序排序了*/return o2 - o1;} }輸出結果如下所示。
9 8 7 6 5 4 3 2 1 0注意:使用以上兩種方法時,數組必須是包裝類型,否則會編譯不通過。
總結
以上是生活随笔為你收集整理的1.14 sort()数组排序(升序和降序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.13 复制(拷贝)数组的4种方法:a
- 下一篇: 1.15 Java冒泡排序法