首页 > 其他 > 详细

Comparator

时间:2020-06-05 18:03:22      阅读:38      评论:0      收藏:0      [点我收藏+]

java.lang.Comparable接口:比较对象大小的标准接口

1.comparableTo方法:类的自然比较方法
int compareTo(Object obj)
当前对象this比object对象大,返回正整数
当前对象this比object对象小,返回负整数
当前对象this和object对象相等,返回0

2.compare:定制排序的接口
int compare(Object obj1,Object obj2)
obj1比obj2对象大,返回正整数
obj1比obj2对象小,返回负整数
obj1比obj2对象相等,返回0

package file;

import java.util.Arrays;
import java.util.Comparator;

/*
 java.lang.Comparable接口:比较对象大小的标准接口
 
 1.comparableTo方法:类的自然比较方法
 int compareTo(Object obj)
 当前对象this比object对象大,返回正整数
 当前对象this比object对象小,返回负整数
 当前对象this和object对象相等,返回0
 
 2.compare:定制排序的接口
 int compare(Object obj1,Object obj2) 
obj1比obj2对象大,返回正整数
obj1比obj2对象小,返回负整数
obj1比obj2对象相等,返回0


 *
 */

public class test13 {
    
    
    public static void main(String[] args) {
        Student [] s=new Student[3];
        s[0]=new Student(1,"zhang_shan",20);
        s[1]=new Student(2,"li_si",10);
        s[2]=new Student(3,"wang_wu",30);
        
        
        //按照自然顺序进行排序
        Arrays.sort(s);
        for(int i=0;i<s.length;i++) {
            System.out.println(s[i]);
        }
        
        
        //按照成绩进行排序
        class StudentScoreCompare implements Comparator{
            @Override
            public int compare(Object obj1,Object obj2) {
                Student s1=(Student)obj1;
                Student s2=(Student)obj2;
                return s1.getScore()-s2.getScore();
            }
            
            
        }
        StudentScoreCompare sc=new StudentScoreCompare();
        
        Arrays.sort(s,sc);
        for(int i=0;i<s.length;i++) {
            System.out.println(s[i]);
        }
    }
    

}



class Student implements Comparable {
    
    private int id;
    private String name;
    private int score;
    public Student(int id, String name, int score) {
        super();
        this.id = id;
        this.name = name;
        this.score = score;
    }
    public Student() {
        super();
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", score=" + score + "]";
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    
    //按照学号进行排序
    @Override
    public int compareTo(Object obj) {
        Student stu=(Student)obj;        
        return this.id-stu.id;
    }

}

 

Comparator

原文:https://www.cnblogs.com/hapyygril/p/13050959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!