//Product.java
import 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.java
import 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;
}
}