要求默认按编号排序,同时实现按名称、价格(从大到小)、上架时间排序的方法
public class Goods implements Comparable<Goods>{
private String no;
private String name;
private int price;
private Date time;
public Goods() {
super();
}
public Goods(String no, String name, int price, Date time) {
super();
this.no = no;
this.name = name;
this.price = price;
this.time = time;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
@Override
public int compareTo(Goods o) {
// TODO Auto-generated method stub
return this.no.compareTo(o.getNo());
}
}
import java.util.Comparator;
public class GoodsTimeComparator implements Comparator<Goods> {
@Override
public int compare(Goods o1, Goods o2) {
// TODO Auto-generated method stub
return o1.getTime().compareTo(o2.getTime());
}
}
import java.util.Comparator;
public class GoodsPriceComparator implements Comparator<Goods> {
@Override
public int compare(Goods o1, Goods o2) {
// TODO Auto-generated method stub
return o2.getPrice()-o1.getPrice();
}
}
import java.util.Comparator;
public class GoodsNameComparator implements Comparator<Goods>{
@Override
public int compare(Goods o1, Goods o2) {
// TODO Auto-generated method stub
return o1.getName().compareTo(o2.getName());
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class GoodsTest {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
// Date date = new Date();
// String s1 = "2018-06-03";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// sdf.format(s1);
Date d = sdf.parse("2012-05-8");
Date d1 =(Date) sdf.parse("2014-06-9");
Date d2 = sdf.parse("2018-08-6");
Date d3 = sdf.parse("2011-01-11");
Date d4 = sdf.parse("2016-03-20");
List<Goods> list = new ArrayList<Goods>();
list.add(new Goods("A001","苹果",8,d));
list.add(new Goods("C001","香蕉",4,d1));
list.add(new Goods("D001","榴莲",12,d2));
list.add(new Goods("B001","西瓜",2,d3));
list.add(new Goods("E001","哈密瓜",12,d4));
// System.out.println(list);
//
Collections.sort(list);
System.out.println("*****按照商品编号排序*****");
for (Goods goods : list) {
System.out.print(goods.getNo() + "\t");
}
System.out.println();
Collections.sort(list,new GoodsNameComparator());
System.out.println("*****按照商品名称排序*****");
for (Goods goods : list) {
System.out.print(goods.getName() + "\t");
}
System.out.println();
Collections.sort(list, new GoodsPriceComparator());
System.out.println("*****按照商品价格排序*****");
for (Goods goods : list) {
System.out.print(goods.getPrice() + "\t");
}
System.out.println();
Collections.sort(list,new GoodsTimeComparator());
System.out.println("*****按照商品上架日期排序*****");
for (Goods goods : list) {
System.out.print(goods.getTime() + "\t");
}
}
}