亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java比較器Comparable接口與Comaprator接口的深入分析

2019-11-26 16:04:21
字體:
來源:轉載
供稿:網友
java的比較器有兩類,分別是Comparable接口Comparator接口。
在為對象數組進行排序時,比較器的作用非常明顯,首先來講解Comparable接口。
讓需要進行排序的對象實現Comparable接口,重寫其中的compareTo(T o)方法,在其中定義排序規則,那么就可以直接調用java.util.Arrays.sort()來排序對象數組,實例如下:
復制代碼 代碼如下:

class Student implements Comparable<Student>{
    private String name;
    private int age;
    private float score;

    public Student(String name, int age, float score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public String toString()
    {
        return name+"/t/t"+age+"/t/t"+score;
    }
    @Override
    public int compareTo(Student o) {
        // TODO Auto-generated method stub
        if(this.score>o.score)//score是private的,為什么能夠直接調用,這是因為在Student類內部
            return -1;//由高到底排序
        else if(this.score<o.score)
            return 1;
        else{
            if(this.age>o.age)
                return 1;//由底到高排序
            else if(this.age<o.age)
                return -1;
            else
                return 0;
        }
    }
}
public class ComparableDemo01 {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student stu[]={new Student("zhangsan",20,90.0f),
                new Student("lisi",22,90.0f),
                new Student("wangwu",20,99.0f),
                new Student("sunliu",22,100.0f)};
        java.util.Arrays.sort(stu);
        for(Student s:stu)
        {
            System.out.println(s);
        }
    }
}

程序運行結果:
sunliu 22 100.0
wangwu 20 99.0
zhangsan 20 90.0
lisi 22 90.0
但是在設計類的時候,往往沒有考慮到讓類實現Comparable接口,那么我們就需要用到另外的一個比較器接口Comparator。
從上面的實例我們可以發現,compareTo(T o)只有一個參數,而Comparator接口中必須要實現的compare(T o1,T o2)就有兩個參數。
代碼實例:
復制代碼 代碼如下:

package edu.sjtu.ist.comutil;
import java.util.Comparator;
class Student {
    private String name;
    private int age;
    private float score;

    public Student(String name, int age, float score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public float getScore() {
        return score;
    }
    public void setScore(float score) {
        this.score = score;
    }
    public String toString()
    {
        return name+"/t/t"+age+"/t/t"+score;
    }
}
class StudentComparator implements Comparator<Student>{
    @Override
    public int compare(Student o1, Student o2) {
        // TODO Auto-generated method stub
        if(o1.getScore()>o2.getScore())
            return -1;
        else if(o1.getScore()<o2.getScore())
            return 1;
        else{
            if(o1.getAge()>o2.getAge())
                return 1;
            else if(o1.getAge()<o2.getAge())
                return -1;
            else
                return 0;
        }
    }

}
public class ComparableDemo02 {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student stu[]={new Student("zhangsan",20,90.0f),
                new Student("lisi",22,90.0f),
                new Student("wangwu",20,99.0f),
                new Student("sunliu",22,100.0f)};
        java.util.Arrays.sort(stu,new StudentComparator());
        for(Student s:stu)
        {
            System.out.println(s);
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频一区二区三区四| 国语自产精品视频在免费| 亚洲精品视频二区| 久久精品国产91精品亚洲| 日韩一区二区精品视频| 懂色av影视一区二区三区| 久久不射电影网| 成人精品久久一区二区三区| 亚洲电影免费观看高清| 91精品国产综合久久男男| 日韩在线免费av| 色噜噜狠狠狠综合曰曰曰| 国产精品视频一区二区三区四| 日韩精品一区二区三区第95| 在线精品91av| 欧美日韩亚洲成人| 欧美床上激情在线观看| 91地址最新发布| 国产成人jvid在线播放| 国产国语videosex另类| 亚洲精品视频中文字幕| 成人国产亚洲精品a区天堂华泰| 国产成人精品一区| 日韩中文字幕在线免费观看| 亚洲精品中文字| 日韩av电影在线网| 91香蕉嫩草神马影院在线观看| 亚洲天堂免费视频| 高清一区二区三区四区五区| 欧美性感美女h网站在线观看免费| 亚洲国产成人av在线| 日韩电影网在线| 性欧美激情精品| 亚洲精选中文字幕| 久久亚洲国产成人| 在线观看久久久久久| 亚洲a在线观看| 在线观看亚洲视频| 亚洲成人a**站| 在线看福利67194| 亚洲欧洲一区二区三区在线观看| 国产性色av一区二区| 91精品在线观看视频| 欧美日韩亚洲天堂| 日韩av手机在线看| 欧美自拍视频在线| 亚洲欧美综合图区| 日韩欧美亚洲国产一区| 国产精品久久久999| 91精品国产综合久久男男| 视频在线一区二区| 欧美重口另类videos人妖| 麻豆乱码国产一区二区三区| 欧美性感美女h网站在线观看免费| 国产精品日韩精品| 国产精品国产自产拍高清av水多| 久久成人精品视频| 亚洲美女又黄又爽在线观看| 亚洲精品一区av在线播放| 精品久久久精品| 精品久久久久久中文字幕| 色午夜这里只有精品| 奇米成人av国产一区二区三区| 九九久久久久久久久激情| 亚洲精品久久久一区二区三区| 中文字幕最新精品| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久久久久婷婷天堂| 91网站免费看| 欧美极度另类性三渗透| 日本精品一区二区三区在线播放视频| 欧美高清视频在线观看| 亚洲www在线观看| 国产精品久久久久久久久久99| 亚洲第一福利在线观看| 亚洲xxxx妇黄裸体| 日韩成人激情在线| 国产日韩精品在线观看| 九九热这里只有精品免费看| 国语自产精品视频在线看| 韩国国内大量揄拍精品视频| 日韩av免费在线看| 亚洲国产精品久久| 欧洲成人性视频| 亚洲精品免费一区二区三区| 日韩成人激情视频| 中文字幕在线看视频国产欧美在线看完整| 日韩在线高清视频| 色综合色综合网色综合| 亚洲男人天堂2024| 久久香蕉国产线看观看网| 国产成人亚洲精品| 欧美亚洲日本黄色| 欧美中文字幕第一页| 国产在线视频91| 在线观看精品国产视频| 国产精品久久久久久婷婷天堂| 北条麻妃在线一区二区| 91中文字幕在线观看| 亚洲天堂日韩电影| 国产一区二区三区中文| 92国产精品视频| 日本精品一区二区三区在线| 亚洲精品福利免费在线观看| 91精品视频在线| 亚洲免费人成在线视频观看| 日韩视频免费中文字幕| 欧美尤物巨大精品爽| 日韩精品黄色网| 亚洲理论在线a中文字幕| 亚洲伊人一本大道中文字幕| 久久成人精品电影| 欧美高清视频一区二区| 久久福利网址导航| 国产精品久久久久久av福利| 精品国产一区二区在线| 91在线精品视频| 中文字幕不卡av| 北条麻妃一区二区三区中文字幕| 亚洲毛茸茸少妇高潮呻吟| 亚洲免费视频网站| 久久精品精品电影网| 4p变态网欧美系列| 国产日韩中文在线| 亚洲精品视频在线观看视频| 2019中文字幕免费视频| 77777亚洲午夜久久多人| 日韩av不卡电影| 亚洲第一精品夜夜躁人人爽| 亚洲视频在线免费观看| 亚洲自拍偷拍网址| 久99九色视频在线观看| 91精品视频在线免费观看| 91中文精品字幕在线视频| 中文字幕av一区二区三区谷原希美| 97在线免费观看视频| 国产在线日韩在线| 国产精品日韩在线播放| 亚洲乱码av中文一区二区| 国产精品jizz在线观看麻豆| 亚洲乱码国产乱码精品精天堂| 欧美亚洲激情视频| 免费不卡在线观看av| 亚洲在线免费视频| 亚洲自拍偷拍一区| 日韩美女免费视频| 97在线观看视频| 国产一区二区成人| 国产精品久久久久不卡| 日韩av资源在线播放| 亚洲第一av网站| 国产精品露脸av在线| 日韩69视频在线观看| 91成人天堂久久成人| 77777少妇光屁股久久一区| 国产女人18毛片水18精品| 亚洲国产成人在线视频| 成人信息集中地欧美| 国产伦精品一区二区三区精品视频| 色综合伊人色综合网站| 亚洲欧美精品suv| 俺去了亚洲欧美日韩| 91国内免费在线视频| 欧美极品少妇全裸体|