使用JavaCollections类的sort对List集合排序的两种方法

来源:互联网 发布:nginx视频服务器 编辑:程序博客网 时间:2024/06/03 13:34

1.实现Comparable接口

//实体类
public class Car implements Comparable<Car> {
    private Integer price;


    public Integer getPrice() {
        return price;
    }
    public void setPrice(Integer price) {
        this.price = price;
    }

    @Override
    public int compareTo(Car c) {
        if(this.price>c.getPrice()){
            return -1;
        }else if(this.price<c.getPrice()){
            return 1;
        }else{
            return 0;
        }
}

//main         

        List<Car> listCar = new ArrayList<Car>();
        Car c1 = new Car();
        Car c2 = new Car();
        Car c3 = new Car();
        c1.setPrice(2000);
        c2.setPrice(1000);
        c3.setPrice(3000);
        listCar.add(c1);
        listCar.add(c2);
        listCar.add(c3);
        
        for (Car car : listCar) {
            System.out.println(car.getPrice());
        }
        System.out.println("================");
        //进行排序
        Collections.sort(listCar);
        for (Car car : listCar) {
            System.out.println(car.getPrice());
        }

2.使用匿名内部类

实体类不要实现任何借口


        // 降序 排序    升序  -1 和 1 调换下
        Collections.sort(carList,new Comparator<Car2>() {
            @Override
            public int compare(Car2 o1, Car2 o2) {
                if(o1.getPrice()>o2.getPrice()){
                    return 1;
                }else if(o1.getPrice()<o2.getPrice()){
                    return -1;
                }else{
                    return 0;
                }
            }
        });

0 0