如何不看这篇文章你可能永远不会知道的排序小技巧

大家好,如果这篇文章对你有帮助的话请给支持一下,关注,点赞,收藏

大家都知道在java中有一个Arrays.sort()针对对象数组排序的方法,现在需求来了,我有一个员工类数组,我需要用以上方法根据员工的薪资进行排序,现在我们来看看Arrays.sort()
Arrays的sort()方法承诺,我可以对如何的对象数组进行排序,但前提是你必须实现了Comparable,这里也体现了接口的特征之一,功能
接下来我们来看代码,

//员工类
public class Employee implements Comparable {
	private String name;
	private double salary;
	@Override
	public String toString() {
		return "Employee [name=" + name + ", salary=" + salary + "]";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	public Employee(String name, double salary) {
		super();
		this.name = name;
		this.salary = salary;
	}
	//实现了Comparable 接口并实现了compareTo方法
	@Override
	public int compareTo(Object o) {
		Employee emp=(Employee)o;
		//Double.compare(x, y);当x>y时返回一个整数,<返回负数,=返回0
		return Double.compare(this.salary, emp.salary);
	}
}
//测试类,这里的代码就不再多做说明,大家都可以看懂,知道有这个功能就可以了
public class Test {
	public static void main(String[] args) {
		Employee e1=new Employee("张三",100);
		Employee e2=new Employee("李四",300);
		Employee e3=new Employee("王五",200);
		Employee[] emps={e1,e2,e3};
		System.out.println("未排序前:");
		for (Employee employee : emps) {
			System.out.println(employee.toString());
		}
		Arrays.sort(emps);
		System.out.println("排序后:");
		for (Employee employee : emps) {
			System.out.println(employee.toString());
		}
	}
}
/*
结果:
未排序前:
Employee [name=张三, salary=100.0]
Employee [name=李四, salary=300.0]
Employee [name=王五, salary=200.0]
排序后:
Employee [name=张三, salary=100.0]
Employee [name=王五, salary=200.0]
Employee [name=李四, salary=300.0]
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值