1. 程式人生 > 其它 >自定義實現Comparable介面類

自定義實現Comparable介面類

開發過程中如果我們想讓某個物件是可比較大小的,那麼需要實現Comparable這個介面。

舉例:我們根據滑鼠的價格進行排序,如果價格一樣再根據滑鼠的名稱來進行排序。

class Mouse implements Comparable{
   

    String goodsName;
    int price;

    public Mouse(String name,int price){
        this.goodsName = name;
        this.price = price;
    }

    @Override
    public int compareTo(Object o) {
        
if (o instanceof Mouse){ Mouse mouse = (Mouse) o; if (this.price > mouse.price){ return 1; }else if(this.price < mouse.price){ return -1; }else { //價格一樣按照貨物名稱排 return -this.goodsName.compareTo(mouse.goodsName); } }
else { throw new RuntimeException("傳入的不是滑鼠型別"); } } @Override public String toString() { return "Mouse{" + "goodsName='" + goodsName + '\'' + ", price=" + price + '}'; } }
@Test
    public void test1(){
        Mouse[] li 
= new Mouse[5]; li[0] = new Mouse("XiaoMi",20); li[1] = new Mouse("Logitech",50); li[2] = new Mouse("lenove",30); li[3] = new Mouse("dell",25); li[4] = new Mouse("Huawei",50); Arrays.sort(li); System.out.println(Arrays.toString(li)); }

這裡如果價格一樣按照貨物名稱從高到底進行排序,輸出結果為

[Mouse{goodsName='XiaoMi', price=20}, Mouse{goodsName='dell', price=25}, Mouse{goodsName='lenove', price=30}, Mouse{goodsName='Logitech', price=50}, Mouse{goodsName='Huawei', price=50}]