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

在Java中如何對(duì)類進(jìn)行排序詳解

 更新時(shí)間:2023年08月25日 09:50:12   作者:休息一下…  
這篇文章主要給大家介紹了關(guān)于如何在Java中使用Arrays.toString()對(duì)類進(jìn)行排序的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

結(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)將其按照升序排列。

    public static void main(String args[]){
        int[] arr = {2,6,3,0,5,2};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }

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

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

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è)類之后就可以對(duì)他進(jìn)行排序了,此時(shí)我們可以先嘗試直接對(duì)類進(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ò)信息中可以找到這一塊代碼:

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

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

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

緊接著再類中對(duì) compareTo() 方法進(jìn)行重寫。(假如我們用年齡來(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é)果按照年齡升序排序。 

總結(jié)

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

相關(guān)文章

  • Java 實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    Java 實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽文件夾是否有新文件增加并上傳服務(wù)器功能

    本文中主要陳述一種實(shí)時(shí)監(jiān)聽文件夾中是否有文件增加的功能,可用于實(shí)際文件上傳功能的開發(fā)。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-09-09
  • nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解

    nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解

    這篇文章主要為大家介紹了nacos服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)依賴配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring Boot接口設(shè)計(jì)防篡改、防重放攻擊詳解

    Spring Boot接口設(shè)計(jì)防篡改、防重放攻擊詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot接口設(shè)計(jì)防篡改、防重放攻擊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 靜態(tài)方法中調(diào)用Spring注入過(guò)程解析

    靜態(tài)方法中調(diào)用Spring注入過(guò)程解析

    這篇文章主要介紹了靜態(tài)方法中調(diào)用Spring注入過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot整合RocketMQ的方法詳解

    SpringBoot整合RocketMQ的方法詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot整合RocketMQ的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,感興趣的小伙伴可以了解一下
    2022-08-08
  • java使用dom4j生成與解析xml文檔的方法示例

    java使用dom4j生成與解析xml文檔的方法示例

    這篇文章主要介紹了java使用dom4j生成與解析xml文檔的方法,結(jié)合實(shí)例形式分析了java基于dom4j操作xml節(jié)點(diǎn)生成xml文檔以及解析xml文檔的相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • MyBatis框架迭代器模式實(shí)現(xiàn)原理解析

    MyBatis框架迭代器模式實(shí)現(xiàn)原理解析

    這篇文章主要介紹了MyBatis框架迭代器模式實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)和算法之冒泡,選擇和插入排序算法

    Java數(shù)據(jù)結(jié)構(gòu)和算法之冒泡,選擇和插入排序算法

    這篇文章主要為大家介紹了Java冒泡,選擇和插入排序算法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • struts2入門(搭建環(huán)境、配置、示例)詳解

    struts2入門(搭建環(huán)境、配置、示例)詳解

    這篇文章主要介紹了struts2入門(搭建環(huán)境、配置、示例)詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java中Caffeine本地緩存項(xiàng)目實(shí)例

    Java中Caffeine本地緩存項(xiàng)目實(shí)例

    這篇文章主要介紹了Java中Caffeine本地緩存項(xiàng)目實(shí)例,Caffeine是一個(gè)高性能Java 緩存庫(kù),使用Java8對(duì)Guava緩存重寫版本,在Spring Boot 2.0中將取代Guava,使用spring.cache.cache-names屬性可以在啟動(dòng)時(shí)創(chuàng)建緩存,需要的朋友可以參考下
    2023-10-10

最新評(píng)論