排序<对象排序:实现接口/实现默认排序

使用Student类,此类没有main方法

//排序
public class Student  implements Comparable<Student>{
    //    数组对象排序要实现implement Comparable<>接口
//    对象排序
    public Student() {
    }
    private int id;
    private String name;
    private int score;
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
// 快速生成getter setter方法;按下alt+insert键;按下shift键全选
//alt+insert选择无参构造;alt+insert选择三参构造;alt+insert选择toString三参;
    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(Student o) {
//        按成绩降序
        return o.score-this.score;
//        按成绩升序
//        return score-o.score;
    }
}

使用:

private int id;
private String name;
private int score;

按下ctrl+insert键,快速生成getter setter方法;按下shift键,方法全选

生成如下:

 

alt+insert选择无参构造;alt+insert选择三参构造;alt+insert选择toString三参;

生成如下:

 

 


数组对象排序要实现implement Comparable<>接口

 有一个compareTo方法

创建一个新的main方法

实现排序一定要先实现接口!!!

import java.util.Arrays;

import static java.util.Arrays.sort;

public class ArrSortStu {
    public static void main(String[] args) {
        Student[] st = new Student[]{
                new Student(1, "张一", 60),
                new Student(2, "赵二", 70),
                new Student(3, "刘三", 75),
                new Student(4, "李四", 63),
                new Student(5, "王五", 63),
                new Student(6, "孙六", 78),
                new Student(7, "秦七", 95),
                new Student(8, "刘八", 84),
        };
        System.out.printf(Arrays.toString(st));
        System.out.println();
        System.out.println("-----------------------------------------------------------------");
//    按成绩默认排序:Student是按成绩降序,则ArrSortStu默认按成绩降序;反之,默认按成绩升序
        //  降序
        sort(st);
        System.out.printf(Arrays.toString(st));
        System.out.println();
        System.out.println("-----------------------------------------------------------------");
        //   升序
        sort(st, (a, b) -> a.getScore() - b.getScore());
        System.out.printf(Arrays.toString(st));
        System.out.println();
        System.out.println("-----------------------------------------------------------------");

//    按名字默认排序
        Arrays.sort(st, (a, b) -> a.getName().compareTo(b.getName()));
        System.out.printf(Arrays.toString(st));
        System.out.println();
        System.out.println("-----------------------------------------------------------------");        Arrays.sort(st, (a, b) -> a.getName().compareTo(b.getName()));
//     按id默认排序
        sort(st, (a, b) -> a.getId() - b.getId());
        System.out.printf(Arrays.toString(st));
        System.out.println();
        System.out.println("-----------------------------------------------------------------");
    }
}

        输出结果:

         默认排序输出:

            按成绩默认排序输出:降序/升序

       按名字默认排序输出:

        按id默认排序输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值