P to P

何以解忧,唯有学习!让每一个人都能Open Source
posts - 4, comments - 12, trackbacks - 0, articles - 11
     
      实际业务上是这样是,通过读取邮件服务器,并获取邮件的标题服务器接收到的时间。获取到的信息是例如:[(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;
  
  }

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问