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

Java中的升序和降序問題

 更新時間:2022年11月25日 10:54:50   作者:劍小麟  
這篇文章主要介紹了Java中的升序和降序問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java升序和降序

1.使用Arrays中的升序API(sort)進(jìn)行升序

代碼示例如下:

public class px {
    public static void main(String[] args) {
        int[] a={11,55,99,66,22,88,33};
        System.out.println(Arrays.toString(a));//打印原有數(shù)組
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));//打印排序后的數(shù)組
    }
}

2.使用comparator接口設(shè)置升序和降序

comparator接口只能使用引用元素進(jìn)行排序,在該接口比較器中,當(dāng)進(jìn)行升序排序時,如果認(rèn)為左邊數(shù)據(jù)大于右邊數(shù)據(jù)則返回正整數(shù),右邊大于左邊返回負(fù)整數(shù),相等返回0,這樣就能進(jìn)行一個完整的升序排序操作。降序排序則反之,左>右為返回負(fù)整數(shù),以此類推。

代碼示例如下,以升序為例:

package paixu;
 
import java.util.Arrays;
import java.util.Comparator;
public class px {
    public static void main(String[] args) {
        int[] a={11,55,99,66,22,88,33};
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        Integer[] b={666,1,777,33,999,55,33};//引用類型的數(shù)組
        Arrays.sort(b,new Comparator<Integer>() {  //comparator接口
            @Override
            public int compare(Integer t, Integer t1) {
                if (t > t1) {        //升序排序操作
                    return 1;
                } else if (t < t1) {
                    return -1;
                }
                return 0;
        }
    });
        System.out.println(Arrays.toString(b));
    }
}

運行結(jié)果如下:

而我們的comparator還有一種簡便方法來進(jìn)行排序操作,即無需在該接口中進(jìn)行if語句的判斷,而是將兩個值直接相減,以此來判斷正負(fù)值。

代碼示例如下,以降序為例:

package paixu;
 
import java.util.Arrays;
import java.util.Comparator;
public class px {
    public static void main(String[] args) {
//        int[] a={11,55,99,66,22,88,33};
//        System.out.println(Arrays.toString(a));
//        Arrays.sort(a);
//        System.out.println(Arrays.toString(a));
        Integer[] b={666,1,777,33,999,55,33};
        Arrays.sort(b,new Comparator<Integer>() {
            @Override
            public int compare(Integer t, Integer t1) {
 
                return t1-t;
        }
    });
        System.out.println(Arrays.toString(b));
    }
}

運行結(jié)果如下:

升序和降序排序方法及原理

排序的思路是,冒泡排序是每一次取一個數(shù)與其它數(shù)進(jìn)行比較,如果你的數(shù)比另一個數(shù)大,兩個進(jìn)行位置交換,依次類推。

public class DemoMessage {
    public static void main(String[] arg) {
        int sortArr[] = new int[]{2, 1, 9, 0, 4, 5, 3, 7, 6, 8};
        sortArr(sortArr);
        //排序升序
        sort(sortArr);
        print(sortArr);
        //排序轉(zhuǎn)置
        reverse(sortArr);
        print(sortArr);
    }

    public static void sortArr(int arr[]) {
        System.out.println("原始數(shù)組:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
    }

    //升序排序
    public static void sort(int arr[]) {
        //外層控制總體的排序次數(shù)
        for (int i = 0; i < arr.length; i++) {
            //內(nèi)層控制的排序次數(shù)
            for (int x = 0; x < arr.length - 1; x++) {
                if (arr[x] > arr[x + 1]) {
                    int t = arr[x];
                    arr[x] = arr[x + 1];
                    arr[x + 1] = t;
                }
            }
        }
        System.out.println();
    }

    public static void print(int temp[]) {
        System.out.println("排序數(shù)組:");
        for (int i = 0; i < temp.length; i++) {
            System.out.print(temp[i] + "\t");
        }
    }

    //轉(zhuǎn)置排序
    public static void reverse(int arr[]) {
        System.out.println("排序轉(zhuǎn)置:");
        //利用算法,在一個數(shù)組上完成所有的轉(zhuǎn)置操作
        //原始數(shù)據(jù):   1、2、3、4、5、6、7、8
        //第一次轉(zhuǎn)置:8、2、3、4、5、6、7、1
        //第二次轉(zhuǎn)置:8、7、3、4、5、6、2、1
        //第三次轉(zhuǎn)置:8、7、6、4、5、3、2、1
        //第四次轉(zhuǎn)置:8、7、6、5、4、3、2、1
        //轉(zhuǎn)換次數(shù):數(shù)組的長度除以2,它的長度是一個偶數(shù)
        //那么問題來了,如果是一個奇數(shù),
        //這就是問題,也就是說不管是一個偶數(shù)還是一個奇數(shù),轉(zhuǎn)軒換的次數(shù)完全是一樣的,所以不影響
        int len = arr.length / 2;//轉(zhuǎn)換次婁
        int head = 0;//開始索引
        int tail = arr.length - 1;//尾部索引
        for (int x = 0; x < len; x++) {
            int temp = arr[head];
            arr[head] = arr[tail];
            arr[tail] = temp;
            head++;
            tail--;
        }
    }
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析Spring4新特性概述

    淺析Spring4新特性概述

    Spring 4.1并沒有特別吸引眼球的地方,主要還是增強和一些依賴的版本升級。本文重點給大家介紹Spring4新特性概述,感興趣的朋友一起看看吧
    2017-09-09
  • Eclipse快捷鍵使用小結(jié)

    Eclipse快捷鍵使用小結(jié)

    Eclipse是用java的同行必不可少的工具,我總結(jié)了一下它的快捷鍵,太常用的ctrl+單擊、ctrl+shift+F、Ctrl+1等我就不細(xì)說了,主要是方便查看。下邊小編就詳細(xì)的為大家介紹一下
    2013-07-07
  • springboot?aop里的@Pointcut()的配置方式

    springboot?aop里的@Pointcut()的配置方式

    這篇文章主要介紹了springboot?aop里的@Pointcut()的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot中MVC的自動配置詳解

    SpringBoot中MVC的自動配置詳解

    這篇文章主要介紹了SpringBoot中MVC的自動配置詳解,在實際開發(fā)過程中,還有一些老的系統(tǒng)在使用xml格式來傳輸數(shù)據(jù),SpringBoot也提供了xml格式數(shù)據(jù)的返回,只需要小小的改動,就可以實現(xiàn),需要的朋友可以參考下
    2023-09-09
  • java獲取Date類型的年份實例代碼

    java獲取Date類型的年份實例代碼

    這篇文章主要給大家介紹了關(guān)于java如何獲取Date類型的年份,針對java獲取Date時間的各種方式匯總,有常用的時間獲取方式,還有一些其他特殊時間獲取方式,需要的朋友可以參考下
    2024-06-06
  • 基于MyBatis的簡單使用(推薦)

    基于MyBatis的簡單使用(推薦)

    下面小編就為大家?guī)硪黄贛yBatis的簡單使用(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • springboot上傳文件,url直接訪問資源問題

    springboot上傳文件,url直接訪問資源問題

    這篇文章主要介紹了springboot上傳文件,url直接訪問資源問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 解決IDEA安裝插件搜索不到插件的問題

    解決IDEA安裝插件搜索不到插件的問題

    這篇文章主要介紹了解決IDEA安裝插件搜索不到插件的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 淺談Java double 相乘的結(jié)果偏差小問題

    淺談Java double 相乘的結(jié)果偏差小問題

    下面小編就為大家?guī)硪黄獪\談Java double 相乘的結(jié)果偏差小問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot使用@PathVariable進(jìn)行數(shù)據(jù)校驗的流程步驟

    SpringBoot使用@PathVariable進(jìn)行數(shù)據(jù)校驗的流程步驟

    在SpringBoot項目中,我們經(jīng)常需要從 URL 中獲取參數(shù)并進(jìn)行相關(guān)的數(shù)據(jù)校驗,而@PathVariable注解就是一種非常方便的方式,可以讓我們在方法參數(shù)中直接獲取URL中的參數(shù),并進(jìn)行數(shù)據(jù)校驗,本文將介紹如何使用@PathVariable注解進(jìn)行數(shù)據(jù)校驗
    2023-06-06

最新評論

耿马| 宁明县| 沂水县| 紫金县| 浮梁县| 安图县| 本溪市| 瑞丽市| 连州市| 都安| 香港| 卓资县| 成都市| 呼伦贝尔市| 乌什县| 桂东县| 偏关县| 乐安县| 金塔县| 三河市| 肇州县| 仁寿县| 龙山县| 岗巴县| 牟定县| 黔西| 临江市| 兴安盟| 永济市| 介休市| 大港区| 固阳县| 麦盖提县| 民勤县| 海口市| 舒城县| 德清县| 志丹县| 休宁县| 景宁| 玛纳斯县|