java接口-Interface
Array类中的sort方法承诺可以对对象数组进行排序,但是要满足下列前提,对象所属的类必须实现了Comparable接口
下面是Comparable接口的代码(泛型接口)
public interface Comparable<T>
{
int comparaTo(T other);//parameter has type T
}
我们自己可以这样实现
class Employee implements Comparable<Employee>
{
public int compareTo(Employee other)
{
return Double.compare(salary,other.salary);
}
}
demo代码
Employee.java
package interfaces;
public class Employee implements Comparable<Employee>
{
private String name;
private double salary;
public Employee(String name,double salary) {
this.name=name;
this.salary=salary;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public void raiseSalary(double byPercent) {
double raise =salary*byPercent/100;
salary+=raise;
}
public int compareTo(Employee other)
{
return Double.compare(salary, other.salary);
}
}
EmployeeSortTest.java
package interfaces;
import java.util.Arrays;
public class EmployeeSortTest {
public static void main(String[] args) {
Employee[] staff=new Employee[3];
staff[0]=new Employee("Harry Hacker",35000);
staff[1]=new Employee("Carl Cracker",75000);
staff[2]=new Employee("Tony Tester",38000);
Arrays.sort(staff);
for(Employee e:staff)
System.out.println("name="+e.getName()+",salary="+e.getSalary());
}
}
结果