Posted on 2006-08-02 09:02
何以解忧,唯有学习!让每一个人都能Open Source 阅读(3892)
评论(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;
}