package com.atguigu.java;
import org.junit.Test;
import java.util.Arrays;
public class ComparableTest {
@Test
public void test1(){
String[] array = new String[]{"AA","FF","SD","DA","WW","AE"};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
@Test
public void Test2(){
Goods[] array = new Goods[4];
array[0] = new Goods(300, "SB1");
array[1] = new Goods(300, "SB2");
array[2] = new Goods(154, "SB3");
array[3] = new Goods(543, "SB4");
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
}
package com.atguigu.java;
public class Goods implements Comparable{
private double price;
private String name;
public Goods(double price, String name) {
this.price = price;
this.name = name;
}
@Override
public int compareTo(Object o) {
if(o instanceof Goods){
Goods good = (Goods)o;
int number = Double.compare(this.price, good.price);
if(number != 0){
return number;
}else{
return this.name.compareTo(good.name);
}
}
throw new RuntimeException("ERROR");
}
@Override
public String toString() {
return "Goods{" +
"price=" + price +
", name='" + name + '\'' +
'}';
}
}