Java对象重载排序函数,实现排序

Java基本语法回顾

在对象生成过程中,我们难免会牵扯到对象之间排序的问题,在Java语言中提供了自我排序的方式—Comparable函数,我们继承并重载对象Comparable函数,实现了对象之间的排序,并在此回顾了List的简单实用方法。

## 实现代码 ##
在这里,我们以Employee员工的三个属性进行测试,工号,姓名,年龄。
如下:

public class Employee implements Comparable<Employee> {

    private int id;
    private String name;
    private int age;
    public Employee(int id, String name, int age) {
        // TODO Auto-generated constructor stub
        this.id = id;
        this.name = name;
        this.age = age;
    }

    /**
       先为升序排列,如果将两个if返回值互换则为降序排列
    **/
    @Override
    public int compareTo(Employee arg0) {
        // TODO Auto-generated method stub
        if(id > arg0.id){
            return 1;
        }
        if (id < arg0.id) {
            return -1;
        }
        return 0;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("员工的编号: " + id + ",");
        sb.append("员工的姓名: " + name + ",");
        sb.append("员工的年龄: " + age + ",");
        return sb.toString();
    }

}

主函数如下:

public static void main(String[] args) {
        List<Employee> list = new ArrayList<Employee>();
        list.add(new Employee(3, "Java", 23));
        list.add(new Employee(2, "Java", 22));
        list.add(new Employee(1, "Java", 21));
        System.out.println("排序前");
        for(Employee employee:list){
            System.out.println(employee);
        }
        Collections.sort(list);
        System.out.println("排序后");
        for(Employee employee:list){
            System.out.println(employee);
        }
    }

如果我们想转变排序方式,可以使用Collections.reverse(List<?> list)反转列表进行排序

public static void main(String[] args) {
        List<Employee> list = new ArrayList<Employee>();
        list.add(new Employee(1, "Java", 21));
        list.add(new Employee(3, "Java", 23));
        list.add(new Employee(2, "Java", 22));
        Collections.sort(list);
        System.out.println("升序排序:");
        for(Employee employee: list){
            System.out.println(employee);
        }
        Collections.reverse(list);
        System.out.println("降序排序:");
        for(Employee employee: list){
            System.out.println(employee);
        }
    }

测试成功

截图

正常排序

反转排序

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值