您的位置:首页 > 编程语言 > Java开发

java实现对象排序

2017-09-25 16:37 295 查看
//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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: