最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java sort()數組排序(升序和降序)

 更新時間:2021年01月21日 10:01:26   作者:c語言中文網  
這篇文章主要介紹了詳解Java sort()數組排序(升序和降序),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

我們在學習 Java 的過程中肯定會遇到對數組進行升序或降序等排序問題,本節(jié)主要介紹如何實現 Java 數組的升序和降序。Java 語言使用 Arrays 類提供的 sort() 方法來對數組進行排序。

升序

使用 java.util.Arrays 類中的 sort() 方法對數組進行升序分為以下兩步:

  1. 導入 java.util.Arrays 包。
  2. 使用 Arrays.sort(數組名) 語法對數組進行排序,排序規(guī)則是從小到大,即升序。

假設在數組 scores 中存放了 5 名學生的成績,現在要實現從低到高排列的功能。在這里使用 Arrays.sort() 方法來實現,具體代碼如下:

public static void main(String[] args) {
  // 定義含有5個元素的數組
  double[] scores = new double[] { 78, 45, 85, 97, 87 };
  System.out.println("排序前數組內容如下:");
  // 對scores數組進行循環(huán)遍歷
  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類》一節(jié)詳細了解):

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 中實現數組排序的方式很多,除了利用以上的幾種方法外,還可以編寫自定義方法來實現自己的排序算法,有興趣的讀者可以嘗試編寫。

Java排序方法sort的使用詳解

對數組的排序:

//對數組排序
public void arraySort(){
  int[] arr = {1,4,6,333,8,2};
  Arrays.sort(arr);//使用java.util.Arrays對象的sort方法
  for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]);
  }
}

對集合的排序:

//對list升序排序
  public void listSort1(){
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(55);
    list.add(9);
    list.add(0);
    list.add(2);
    Collections.sort(list);//使用Collections的sort方法
    for(int a :list){
      System.out.println(a);
    }
  }
  //對list降序排序
  public void listSort2(){
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(55);
    list.add(9);
    list.add(0);
    list.add(2);
    Collections.sort(list, new Comparator<Integer>() {
      public int compare(Integer o1, Integer o2) {
        return o2 - o1;
      }
    });//使用Collections的sort方法,并且重寫compare方法
    for(int a :list){
      System.out.println(a);
    }
  }

到此這篇關于詳解Java sort()數組排序(升序和降序)的文章就介紹到這了,更多相關Java sort()數組排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決java使用axios.js的post請求后臺時無法接收到入參的問題

    解決java使用axios.js的post請求后臺時無法接收到入參的問題

    今天小編就為大家分享一篇解決java使用axios.js的post請求后臺時無法接收到入參的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Spring?Batch實現批量處理

    Spring?Batch實現批量處理

    本文主要介紹了Spring?Batch進行批量處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • springboot中的controller注意事項說明

    springboot中的controller注意事項說明

    這篇文章主要介紹了springboot中的controller注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java數據結構關于棧的實例應用

    java數據結構關于棧的實例應用

    大家好,本篇文章主要講的是java數據結構關于棧的實例應用,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 聊聊Java Double相加出現的怪事

    聊聊Java Double相加出現的怪事

    這篇文章主要介紹了Java Double相加出現的怪事,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Servlet編程第一步之從零構建Hello?World應用詳細步驟+圖解

    Servlet編程第一步之從零構建Hello?World應用詳細步驟+圖解

    本文詳細介紹了Servlet和maven的基本概念及其在JavaWeb開發(fā)中的應用,首先解釋了Servlet是一個在服務器上處理請求的Java程序,然后介紹了maven作為管理和構建Java項目的工具,需要的朋友可以參考下
    2024-10-10
  • 關于Java中反射的作用義及使用方法

    關于Java中反射的作用義及使用方法

    這篇文章主要介紹了關于Java中反射的作用義及使用方法,反射使得程序可以在運行時對類進行檢查和操作,而不需要在編譯時知道類的完整信息,需要的朋友可以參考下
    2023-07-07
  • java使用短信設備發(fā)送sms短信的示例(java發(fā)送短信)

    java使用短信設備發(fā)送sms短信的示例(java發(fā)送短信)

    這篇文章主要介紹了java使用短信設備發(fā)送sms短信的示例(java發(fā)送短信),需要的朋友可以參考下
    2014-04-04
  • 如何使用SpringBoot集成Kafka實現用戶數據變更后發(fā)送消息

    如何使用SpringBoot集成Kafka實現用戶數據變更后發(fā)送消息

    Spring Boot集成Kafka實現用戶數據變更后,向其他廠商發(fā)送消息,我們需要考慮配置Kafka連接、創(chuàng)建Kafka Producer發(fā)送消息、監(jiān)聽用戶數據變更事件,并將事件轉發(fā)到Kafka,本文分步驟給大家講解使用SpringBoot集成Kafka實現用戶數據變更后發(fā)送消息,感興趣的朋友一起看看吧
    2024-07-07
  • nacos gateway動態(tài)路由實戰(zhàn)

    nacos gateway動態(tài)路由實戰(zhàn)

    這篇文章主要介紹了nacos gateway動態(tài)路由實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論

雷波县| 饶阳县| 盐亭县| 丰台区| 佛坪县| 金塔县| 天镇县| 龙山县| 平阴县| 南乐县| 松江区| 丰原市| 永平县| 丰城市| 乌拉特中旗| 崇阳县| 于都县| 湟中县| 元谋县| 东台市| 循化| 凤阳县| 宁远县| 成武县| 华坪县| 铁岭县| 宁河县| 方山县| 沙雅县| 延津县| 威远县| 淅川县| 闵行区| 元朗区| 河池市| 诸暨市| 论坛| 九龙城区| 改则县| 钦州市| 乌拉特中旗|