java实现对象排序

来源:互联网 发布:在excel中删除重复数据 编辑:程序博客网 时间:2024/06/06 01:40
//Product.javaimport java.util.Date;//public class Product {//类内比较public class Product{    private String name;    private Date date;    private int price;    public int getPrice() {        return price;    }    public void setPrice(int price) {        this.price = price;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }}

//ProductComparable.javaimport java.util.Date;import java.util.Comparator;public class ProductComparable implements Comparator<Product> {    // 对象的排序方式[升、降]    public static boolean sortASC = true;    // 对象的排序属性    public static boolean sortByName = false;    public static boolean sortByDate = false;    public static boolean sortByPrice = false;    @Override    public int compare(Product pro1, Product pro2) {        int result = 0;        if(sortASC){            if(sortByName){                String pro1name = pro1.getName();                String pro2name = pro2.getName();                result = pro1name.compareTo(pro2name);            }else if(sortByDate){                Date pro1Date = pro1.getDate();                Date pro2Date = pro2.getDate();                result = pro1Date.compareTo(pro2Date);            }else if(sortByPrice){                Integer pro1Price = pro1.getPrice();                Integer pro2Price = pro2.getPrice();                result = pro1Price.compareTo(pro2Price);            }        }else{            if(sortByName){                String pro1name = pro1.getName();                String pro2name = pro2.getName();                result =  -pro1name.compareTo(pro2name);            }else if(sortByDate){                Date pro1Date = pro1.getDate();                Date pro2Date = pro2.getDate();                result =  -pro1Date.compareTo(pro2Date);            }else if(sortByPrice){                Integer pro1Price = pro1.getPrice();                Integer pro2Price = pro2.getPrice();                result =  -pro1Price.compareTo(pro2Price);            }        }        return result;    }}