欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中使用qsort對(duì)類(lèi)進(jìn)行排序的操作代碼

 更新時(shí)間:2023年09月05日 10:03:16   作者:休息一下…  
這篇文章主要介紹了JAVA中如何使用qsort對(duì)類(lèi)進(jìn)行排序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

結(jié)論:

import java.util.Arrays;
class Person implements Comparable<Person>{
    public String name;
    public int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    @Override
    public int compareTo(Person o) {
        return this.age - o.age;
    }
}
public class Main{
    public static void main(String args[]){
        Person[] arr = new Person[3];
        arr[0] = new Person("zhang", 10);
        arr[1] = new Person("wang", 13);
        arr[2] = new Person("li", 11);
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

解析:

我們知道當(dāng)我們定義了一個(gè)整型數(shù)組然后想對(duì)其進(jìn)行排序時(shí)就可以使用 Arrays.toString() 方法對(duì)數(shù)組進(jìn)行排序,系統(tǒng)會(huì)默認(rèn)將其按照升序排列。

class Person{
    public String name;
    public int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

當(dāng)我們需要對(duì)類(lèi)進(jìn)行排序應(yīng)該怎么做呢?

首先我們先定義一個(gè)類(lèi):

class Person{
    public String name;
    public int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 我們現(xiàn)在有了這個(gè)類(lèi)之后就可以對(duì)他進(jìn)行排序了,此時(shí)我們可以先嘗試直接對(duì)類(lèi)進(jìn)行排序操作:

    public static void main(String args[]){
        Person[] arr = new Person[3];
        arr[0] = new Person("zhang", 10);
        arr[1] = new Person("wang", 13);
        arr[2] = new Person("li", 11);
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }

 雖然報(bào)錯(cuò)了但是我們從報(bào)錯(cuò)信息中可以找到這一塊代碼:

 從中我們可以清晰的看到它將我們的代排序類(lèi)強(qiáng)制類(lèi)型轉(zhuǎn)換成了 Comparable 而我們的類(lèi)根本就不能進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換成Comparable從而引起了錯(cuò)誤。

我們既然已經(jīng)知道了哪里出現(xiàn)了錯(cuò)誤那么改掉之后我們就可以實(shí)現(xiàn)使用 Arrays.toString() 方法來(lái)排序類(lèi)。

此時(shí)我們先修改我們的類(lèi),使其實(shí)現(xiàn) Comparable 接口:

緊接著再類(lèi)中對(duì) compareTo() 方法進(jìn)行重寫(xiě)。(假如我們用年齡來(lái)排序 compareTo() 方法的返回值為:大于返回大于0的數(shù);小于返回小于零的數(shù);等于返回0)

class Person implements Comparable<Person>{
    public String name;
    public int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    @Override
    public int compareTo(Person o) {
        return this.age - o.age;
    }
}

運(yùn)行之后可以看到結(jié)果按照年齡升序排序。 

到此這篇關(guān)于JAVA中如何使用qsort對(duì)類(lèi)進(jìn)行排序的文章就介紹到這了,更多相關(guān)java使用qsort對(duì)類(lèi)排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springCloud config本地配置操作

    springCloud config本地配置操作

    這篇文章主要介紹了springCloud config本地配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java非法字符: ‘\ufeff‘問(wèn)題及說(shuō)明

    Java非法字符: ‘\ufeff‘問(wèn)題及說(shuō)明

    這篇文章主要介紹了Java非法字符: ‘\ufeff‘問(wèn)題及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案例

    java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案

    這篇文章主要介紹了java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案例,
    2021-02-02
  • 詳解Java分布式緩存系統(tǒng)中必須解決的四大問(wèn)題

    詳解Java分布式緩存系統(tǒng)中必須解決的四大問(wèn)題

    分布式緩存系統(tǒng)是三高架構(gòu)中不可或缺的部分,極大地提高了整個(gè)項(xiàng)目的并發(fā)量、響應(yīng)速度,但它也帶來(lái)了新的需要解決的問(wèn)題,分別是: 緩存穿透、緩存擊穿、緩存雪崩和緩存一致性問(wèn)題。本文將詳細(xì)講解一下這四大問(wèn)題,需要的可以參考一下
    2022-04-04
  • 完美解決在Servlet中出現(xiàn)一個(gè)輸出中文亂碼的問(wèn)題

    完美解決在Servlet中出現(xiàn)一個(gè)輸出中文亂碼的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決在Servlet中出現(xiàn)一個(gè)輸出中文亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • java爬蟲(chóng)Jsoup主要類(lèi)及功能使用詳解

    java爬蟲(chóng)Jsoup主要類(lèi)及功能使用詳解

    這篇文章主要為大家介紹了java爬蟲(chóng)Jsoup主要類(lèi)及功能使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • SpringBoot整合token實(shí)現(xiàn)登錄認(rèn)證的示例代碼

    SpringBoot整合token實(shí)現(xiàn)登錄認(rèn)證的示例代碼

    本文主要介紹了SpringBoot整合token實(shí)現(xiàn)登錄認(rèn)證的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot+kaptcha實(shí)現(xiàn)驗(yàn)證碼花式玩法詳解

    SpringBoot+kaptcha實(shí)現(xiàn)驗(yàn)證碼花式玩法詳解

    這篇文章主要想和大家聊聊kaptcha的用法,畢竟這個(gè)已經(jīng)有16年歷史的玩意還在有人用,說(shuō)明它的功能還是相當(dāng)強(qiáng)大的,感興趣的小伙伴可以了解一下
    2022-05-05
  • Java實(shí)現(xiàn)4種微信搶紅包算法(小結(jié))

    Java實(shí)現(xiàn)4種微信搶紅包算法(小結(jié))

    微信紅包是大家經(jīng)常使用的,到現(xiàn)在為止仍然有很多紅包開(kāi)發(fā)的需求,實(shí)現(xiàn)搶紅包算法也是面試??碱},本文就詳細(xì)的來(lái)介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2021-12-12
  • spring如何加載配置多個(gè)配置文件

    spring如何加載配置多個(gè)配置文件

    這篇文章主要介紹了spring如何加載配置多個(gè)配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論