类要实现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);
}
}