日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Java比較器Comparable接口和Comaprator接口

Java比較器Comparable接口和Comaprator接口

來源:程序員人生   發布時間:2017-02-04 09:27:40 閱讀次數:2701次

學習Java的同學注意了?。。?/span> 
學習進程中遇到甚么問題或想獲得學習資源的話,歡迎加入Java學習交換群,群號碼:183993990  我們1起學Java!


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 ⑴;//由高到底排序
        else if(this.score<o.score)
            return 1;
        else{
            if(this.age>o.age)
                return 1;//由底到高排序
            else if(this.age<o.age)
                return;
            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接口,那末我們就需要用到另外的1個比較器接口Comparator。

從上面的實例我們可以發現,compareTo(T o)只有1個參數,而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;
        else if(o1.getScore()<o2.getScore())
            return 1;
        else{
            if(o1.getAge()>o2.getAge())
                return 1;
            else if(o1.getAge()<o2.getAge())
                return;
            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);
        }
    }

}
復制代碼

上述程序的運行結果與代碼實例11樣。

學習Java的同學注意了?。?! 
學習進程中遇到甚么問題或想獲得學習資源的話,歡迎加入Java學習交換群,群號碼:183993990  我們1起學Java!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲一二三在线 | 在线不卡一区 | 毛片国产 | 99re色 | 一区二区在线电影 | 91久久精品一区二区 | 欧美日韩精品在线 | 中文字幕久久精品 | 欧美激情一区二区三区 | 日韩欧美中文字幕在线视频 | 精品国产一区二区三区久久影院 | 日韩精品一二区 | 日日爱999| 在线看的av网站 | 久久久久久久亚洲精品 | 变态 另类 欧美 大码 日韩 | 超碰娱乐| 国产亚洲精品久 | 精品久久一区二区 | 亚洲欧美综合精品久久成人 | 国产精品一区二区av日韩在线 | 久久国产精品区 | 成人国产精品免费观看 | 毛片网站在线观看 | 国产a区 | 又湿又紧又大又爽a视频国产 | 韩国三级日本三级少妇99 | 黄骗免费网站 | 日韩精品久久 | 欧美激情综合五月色丁香小说 | 国产理论片 | 福利精品| 国产午夜精品一区二区三区欧美 | 黄色毛片在线观看 | 久久久综合色 | 亚洲国产视频一区二区 | 免费黄色av网站 | 不卡一区二区三区四区 | 国产欧美一区二区三区精品酒店 | 久久99精品久久久久久园产越南 | 免费福利av|