类比较器Comparator

1、创建一个继承 Comparator 的类

package com.how2java.tmall.comparator;
 
import java.util.Comparator;
 
import com.how2java.tmall.pojo.Product;
 
public class ProductAllComparator implements Comparator<Product>{
 
    @Override
    public int compare(Product p1, Product p2) {
        return p2.getReviewCount()*p2.getSaleCount()-p1.getReviewCount()*p1.getSaleCount();
    }
 
}

2、对数组进行排序

Collections.sort(list, new ProductAllComparator());

拓展:一个比较器包含多种排序方法

public class ProductComparator implements Comparator<Product> {
    private String sort;
 
    public ProductComparator(String sort) {
        this.sort = sort;
    }
 
    public ProductComparator() {
    }
 
    @Override
    public int compare(Product o1, Product o2) {
        int result = 0;
        switch (sort) {
            case "review":
                result = o1.getReviewCount() - o2.getReviewCount();
                break;
            case "date":
                result = o1.getCreateDate().compareTo(o2.getCreateDate());
                break;
 
            case "saleCount":
                result = o1.getSaleCount() - o2.getSaleCount();
                break;
 
            case "price":
                result = (int) (o1.getPromotePrice() - o2.getPromotePrice());
                break;
 
            case "all":
                result = o1.getSaleCount() * o1.getReviewCount() - o2.getSaleCount() * o2.getSaleCount();
                break;
            default:
                result = 0;
                break;
        }
        return result;
    }
}
发布了52 篇原创文章 · 获赞 1 · 访问量 1752

猜你喜欢

转载自blog.csdn.net/qq_42039738/article/details/104214929