一、定义
public interface Comparable<T> {
public int compareTo<T o>;
}
建议compareTo()方法返回三类数据:1(大于);0(等于);-1(小于);
示例代码:
public class Book implements Comparable<Book>{
private String name;
private double price;
public Book(String name ,double price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "书名:" + name + "价格:" + price;
}
@Override
public int compareTo(Book o) {//Array.sort()会自动调用此方法
if(this.price > o.price) {
return 1;
}else if(this.price < o.price) {
return -1;
}else{
return 0;
}
}
}
public class TestDemo {
public static void main(String[] args) {
Book[] book = new Book[]{
new Book("java开发",79.6),
new Book("Android开发",88.6),
new Book("php开发",56.9),
new Book("java开发",79.6)
};
//对象数组排序,一定要先调用此方法
Arrays.sort(book);
System.out.println(Arrays.toString(book));
}
}
总结:1、compareTo()方法由Arrays.sort()方法调用,因此使用Comparable接口排序,只要重写里面的compareTo()方法,确定排序顺序
2、注意一定要使用Arrays.sort()方法