JavaMail獲取郵件列表時對時間進行排序
Posted on 2006-08-02 09:02 何以解憂,唯有學習!讓每一個人都能Open Source 閱讀(3909) 評論(0) 編輯 收藏 所屬分類: 數據結構和算法筆記?????
??????實際業務上是這樣是,通過讀取郵件服務器,并獲取郵件的標題服務器接收到的時間。獲取到的信息是例如:[(AAA于AAA)是我用來分隔的]
郵件1AAA于AAA2006-07-05 20:21:51
郵件2AAA于AAA2006-03-01 08:21:01
郵件3AAA于AAA2003-05-14 20:06:51
郵件4AAA于AAA2006-03-01 23:21:31
郵件5AAA于AAA2005-03-03 20:01:51
郵件6AAA于AAA2006-03-01 16:21:21
郵件7AAA于AAA2001-07-21 20:51:11
郵件8AAA于AAA2000-03-01 10:21:51
將這些記錄放在ArrayList中,以下就對ArrayList進行排序。具體的算法說明我就不介紹了
不懂插入排序的朋友去看數據結構吧。
/**
?? * 方法對郵件的排序使用的排序算法為插入排序法
?? *
?? * **/
? private ArrayList sort(ArrayList al)
? {
? ArrayList NewAl=al;
?? int in,out;
?? ?for (out=1;out<NewAl.size();out++)
?? ?{
?? ?? String temp=(String)NewAl.get(out);
?? ?? in=out;
???//精華部份
????? while(in>0 && this.getDateByString((String)NewAl.get(in-1)).before(getDateByString(temp)))
?? ?? {
?? ???NewAl.set(in,NewAl.get(in-1));
?? ??? --in;
?? ?? }
?? ??NewAl.set(in,temp);
?? ?}
?? return NewAl;
? }
? /**
?? * 方法用于折取并返回時間
?? *
?? * **/
? private Date getDateByString(String str)
? {
?? Date date=null;
?? try
?? {
?? String listString="";
?? listString=str.split("AAA于AAA")[1];
?? DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
?? date=f.parse(ListString);
?? }
?? catch(Exception ex)
?? {
??? ex.printStackTrace();
?? }
?? return date;
??
? }
??????實際業務上是這樣是,通過讀取郵件服務器,并獲取郵件的標題服務器接收到的時間。獲取到的信息是例如:[(AAA于AAA)是我用來分隔的]
郵件1AAA于AAA2006-07-05 20:21:51
郵件2AAA于AAA2006-03-01 08:21:01
郵件3AAA于AAA2003-05-14 20:06:51
郵件4AAA于AAA2006-03-01 23:21:31
郵件5AAA于AAA2005-03-03 20:01:51
郵件6AAA于AAA2006-03-01 16:21:21
郵件7AAA于AAA2001-07-21 20:51:11
郵件8AAA于AAA2000-03-01 10:21:51
將這些記錄放在ArrayList中,以下就對ArrayList進行排序。具體的算法說明我就不介紹了
不懂插入排序的朋友去看數據結構吧。
/**
?? * 方法對郵件的排序使用的排序算法為插入排序法
?? *
?? * **/
? private ArrayList sort(ArrayList al)
? {
? ArrayList NewAl=al;
?? int in,out;
?? ?for (out=1;out<NewAl.size();out++)
?? ?{
?? ?? String temp=(String)NewAl.get(out);
?? ?? in=out;
???//精華部份
????? while(in>0 && this.getDateByString((String)NewAl.get(in-1)).before(getDateByString(temp)))
?? ?? {
?? ???NewAl.set(in,NewAl.get(in-1));
?? ??? --in;
?? ?? }
?? ??NewAl.set(in,temp);
?? ?}
?? return NewAl;
? }
? /**
?? * 方法用于折取并返回時間
?? *
?? * **/
? private Date getDateByString(String str)
? {
?? Date date=null;
?? try
?? {
?? String listString="";
?? listString=str.split("AAA于AAA")[1];
?? DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
?? date=f.parse(ListString);
?? }
?? catch(Exception ex)
?? {
??? ex.printStackTrace();
?? }
?? return date;
??
? }