1.解释一下Comparable怎么用:
package com.hy.object.customerMessageManagement;
/**
* @author MSI-PC
* @date 2020-06-21 17:45
*/
public class MyArrays {
public void sort(Object[] arr){
for(int i=1;i<arr.length;i++){
for(int j=0;j<arr.length-i;j++){
Comparable pre = (Comparable) arr[j]; //如果这个位置运行没有报错,说明arr[j]这个元素实现了Comparable接口
if(pre.compareTo(arr[j+1])>0){
Object temp =arr[j];
arr[j] =arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
2.通过雇员继承Comparable接口的例子来说明排序
package com.hy.object.customerMessageManagement.comparable;
/**
* @author MSI-PC
* @date 2020-06-21 18:02
*/
public class Employee implements Comparable{
private String name;
private double salary;
public Employee() {}
public Employee(String name, double salary) {
this.name = name;
this.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;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", salary=" + salary +
'}';
}
public int compareTo(Object o) {
Employee emp = (Employee)o;
if(this.salary > emp.salary){
return 1;
}else if(this.salary < emp.salary){
return -1;
}
return 0;
}
}
package com.hy.object.customerMessageManagement.comparable;
import java.util.Arrays;
/**
* @author MSI-PC
* @date 2020-06-21 18:07
*/
public class TestEmployee {
public static void main(String args[]){
Employee[] arr = new Employee[5];
arr[0] = new Employee("张1",1034);
arr[1] = new Employee("张2",14645);
arr[2] = new Employee("张3",1566544);
arr[3] = new Employee("张4",153423);
arr[4] = new Employee("张5",14);
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}