package com.zdf.newapp.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Trade trade1 = new Trade("8.9", "500", "2012-08-31");
Trade trade2 = new Trade("8.8", "600", "2012-08-27");
Trade trade3 = new Trade("9.7", "100", "2012-08-20");
Trade trade4 = new Trade("9.01", "300", "2012-08-20");
Trade trade5 = new Trade("8.8", "400", "2012-08-19");
Trade trade6 = new Trade("8.1", "700", "2012-08-11");
Trade trade7 = new Trade("8.8", "500", "2012-08-27");
List<Trade> listTrade = new ArrayList<Trade>();
listTrade.add(trade1);
listTrade.add(trade2);
listTrade.add(trade3);
listTrade.add(trade4);
listTrade.add(trade5);
listTrade.add(trade6);
listTrade.add(trade7);
ComparatorUser comparator=new ComparatorUser();
Collections.sort(listTrade, comparator);
for (int i=0;i<listTrade.size();i++){
Trade user_temp=(Trade)listTrade.get(i);
System.out.println(user_temp.getQuote_price()+","+user_temp.getQuote_date()+","+user_temp.getQuote_num());
}
}
public static class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
Trade Trade0=(Trade)arg0;
Trade Trade1=(Trade)arg1;
//首先比较价格,如果价格相同,则比较时间,前两者都一样则比较数量
int flag=Trade1.getQuote_price().compareTo(Trade0.getQuote_price());
if(flag==0){
flag = Trade0.getQuote_date().compareTo(Trade1.getQuote_date());
return flag;
}
if(flag==0){
return Trade0.getQuote_num().compareTo(Trade1.getQuote_num());
}
else{
return flag;
}
}
}
public static class Trade {
private String quote_price;//报价价格
private String quote_num;//报价数量
private String quote_date;//报价时间
public String getQuote_price() {
return quote_price;
}
public void setQuote_price(String quotePrice) {
quote_price = quotePrice;
}
public String getQuote_num() {
return quote_num;
}
public void setQuote_num(String quoteNum) {
quote_num = quoteNum;
}
public String getQuote_date() {
return quote_date;
}
public void setQuote_date(String quoteDate) {
quote_date = quoteDate;
}
public Trade(String quote_price ,String quote_num,String quote_date){
this.quote_date=quote_date;
this.quote_price=quote_price;
this.quote_num=quote_num;
}
}
}
输入: 输出 图片 如附件
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Trade trade1 = new Trade("8.9", "500", "2012-08-31");
Trade trade2 = new Trade("8.8", "600", "2012-08-27");
Trade trade3 = new Trade("9.7", "100", "2012-08-20");
Trade trade4 = new Trade("9.01", "300", "2012-08-20");
Trade trade5 = new Trade("8.8", "400", "2012-08-19");
Trade trade6 = new Trade("8.1", "700", "2012-08-11");
Trade trade7 = new Trade("8.8", "500", "2012-08-27");
List<Trade> listTrade = new ArrayList<Trade>();
listTrade.add(trade1);
listTrade.add(trade2);
listTrade.add(trade3);
listTrade.add(trade4);
listTrade.add(trade5);
listTrade.add(trade6);
listTrade.add(trade7);
ComparatorUser comparator=new ComparatorUser();
Collections.sort(listTrade, comparator);
for (int i=0;i<listTrade.size();i++){
Trade user_temp=(Trade)listTrade.get(i);
System.out.println(user_temp.getQuote_price()+","+user_temp.getQuote_date()+","+user_temp.getQuote_num());
}
}
public static class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
Trade Trade0=(Trade)arg0;
Trade Trade1=(Trade)arg1;
//首先比较价格,如果价格相同,则比较时间,前两者都一样则比较数量
int flag=Trade1.getQuote_price().compareTo(Trade0.getQuote_price());
if(flag==0){
flag = Trade0.getQuote_date().compareTo(Trade1.getQuote_date());
return flag;
}
if(flag==0){
return Trade0.getQuote_num().compareTo(Trade1.getQuote_num());
}
else{
return flag;
}
}
}
public static class Trade {
private String quote_price;//报价价格
private String quote_num;//报价数量
private String quote_date;//报价时间
public String getQuote_price() {
return quote_price;
}
public void setQuote_price(String quotePrice) {
quote_price = quotePrice;
}
public String getQuote_num() {
return quote_num;
}
public void setQuote_num(String quoteNum) {
quote_num = quoteNum;
}
public String getQuote_date() {
return quote_date;
}
public void setQuote_date(String quoteDate) {
quote_date = quoteDate;
}
public Trade(String quote_price ,String quote_num,String quote_date){
this.quote_date=quote_date;
this.quote_price=quote_price;
this.quote_num=quote_num;
}
}
}
输入: 输出 图片 如附件