Comparable 自然排序
public class HelloWorld{
public static void main(String[] args) {
Shopping[] ss=new Shopping[3];
ss[0]=new Shopping(14.2,"a");
ss[1]=new Shopping(14.2,"c");
ss[2]=new Shopping(11.2,"b");
--> 类的自然排序 <--
Arrays.sort(ss);
System.out.println(Arrays.toString(ss));
}
}
--> 实现 Comparable <--
class Shopping implements Comparable<Shopping>{
double price;
String s_name;
public Shopping(double price,String s_name){
this.price=price;
this.s_name=s_name;
}
--> 重写compareTo 方法 <--
@Override
public int compareTo(Shopping o) {
if(this.price > o.price){
return 1;
}else if(this.price < o.price){
return -1;
}else{
return this.s_name.compareTo(o.s_name);
}
}
}
[Shopping{price=11.2, s_name='b'}, Shopping{price=14.2, s_name='a'}, Shopping{price=14.2, s_name='c'}]
Comparator 定制排序
public class HelloWorld{
public static void main(String[] args) {
Shopping[] ss=new Shopping[3];
ss[0]=new Shopping(14.2,"a");
ss[1]=new Shopping(14.2,"c");
ss[2]=new Shopping(11.2,"b");
--> 定制排序 <--
Arrays.sort(ss, new Comparator<Shopping>() {
@Override
public int compare(Shopping o1, Shopping o2) {
if(o1.price > o2.price){
return 1;
}else if(o1.price < o2.price){
return -1;
}else{
return o1.s_name.compareTo(o2.s_name);
}
}
});
System.out.println(Arrays.toString(ss));
}
}
class Shopping {
double price;
String s_name;
public Shopping(double price,String s_name){
this.price=price;
this.s_name=s_name;
}
}