對集合集合排序CompareTo(),sort()與查找

類要實現Comparable接口.

//商品類
public class Goods implements Comparable{

private int id;//商品編號
private String name;//商品名字
private double price;//商品單價
private int sales;//商品銷量
private int store;//商品庫存

//省略setter/gerter方法

public Goods(){

}
public Goods(int id, String name, double price, int sales,int store) {
    this.id = id;
    this.name = name;
    this.price = price;
    this.sales = sales;
    this.store = store;
}

public Goods(int sales){
    this.sales = sales;
}
@Override
public int compareTo(Goods goods) {
    if(this.sales == goods.sales)
        return 0;
    else if(this.sales > goods.sales)
        return 1;
    else
        return -1;
}

/***********************************************/
//測試類
import java.util.ArrayList;
import java.util.Collections;

public class Test {

public static void main(String[] args) {
    //初始化商品對象
    Goods g1 = new Goods(10001,"康師傅泡麪",4,45,255);
    Goods g2 = new Goods(10002,"綠箭口香糖",2,23,177);
    Goods g3 = new Goods(10003,"哇哈哈紅茶",3.5,62,138);
    //創建集合對象
    ArrayList<Goods> list = new ArrayList<Goods>();
    //添加元素
    list.add(g1);
    list.add(g2);
    list.add(g3);       
    System.out.println("--------排序前--------");
    System.out.println("編號\t商品名稱\t\t價格\t銷量\t庫存");
    for (Goods goods : list) {
        System.out.println(goods.getId()+"\t"+goods.getName()+"\t\t"+goods.getPrice()+"\t"+goods.getSales()+"\t"+goods.getStore());
    }           
    //使用Collections類的sort()方法對List集合進行排序
    System.out.println("--------排序後--------");
    Collections.sort(list);
    System.out.println("編號\t商品名稱\t\t價格\t銷量\t庫存");
    for (Goods goods : list) {
        System.out.println(goods.getId()+"\t"+goods.getName()+"\t\t"+goods.getPrice()+"\t"+goods.getSales()+"\t"+goods.getStore());
    }   
    //使用Collections類的binarySearch()方法對List集合進行查找
    int index = Collections.binarySearch(list, g3);
    System.out.println("g5的索引是:"+index);
}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章