模拟调用java.util.Arrays.sort();

该博客通过TestCallback类展示了如何手动实现`java.util.Arrays.sort()`方法的排序逻辑。示例中创建了一个Student类,实现了Comparable接口,然后在sort()方法中进行比较并交换元素,从而完成对Student对象数组的分数升序排序。

public class TestCallback {

    public static void main(String[] args) {
        Student[] stu = new Student[]{new Student("赵公民" , 99D) , new Student("冯光芒 ", 22D) , new Student("赵咕噜" , 80D)};
        sort(stu);
        for(int i = 0; i < stu.length;i++){
            System.out.println(stu[i].name + "\t" + stu[i].score);
        }
    }
    
    public static void sort(Student[] students){//手工写sort方法的实现过程
        for(int i = 0;i < students.length - 1;i++){
            Comparable com = (Comparable)students[i];//判断students是否调用Comparable接口
            int n = com.compareTo(students[i+1]);
            if(n > 0){
                Student temp = students[i];//借用值替换目标
                students[i] = students[i + 1];
                students[i + 1] = temp;
            }
        }
        
    }
}
class Student implements Comparable<Student>{
    String name;
    int age;
    String sex;
    double score;
    public Student(String name , double score){
        this.name = name;
        this.score = score;
    }
    public int compareTo(Student s){//写和接口一样的方法,并且实现数值的判断返回 正整数,负整数或零
        if(this.score > s.score){
            return -1;
        }
        else if(this.score < s.score){
            return 1;
        }
        else{
            return 0;
        }
    }
}

评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值