本帖最后由 syj247 于 2010-04-10 19:45:41 编辑

解决方案 »

  1.   

    你怎么把作业给发上来了?看样子你听的课有一半没听懂... 像这么简单 代码又这么多的问题高手是懒得回答的,还好我也是新手,也是菜鸟,重要的是跟你一届的,帮你说一下吧。
        按照发布时间和标题排序不是自然排序,是不用实现Comparable接口的,要用第二种方法,实现Comparator接口;你既然已经定义了一个BbsMessage类,那为什么还要HashMap来存储信息?而为什么不创建BbsMessage类的对象出来,再将对象存储在ArrayList里面?实现两种排序只要调用Collections类里面的一个sort(List<E> list, Comparator<E>  com)方法(大概是这个样子,具体的去查API),来实现按照发布时间排序和按照标题排序就行了。
        我只能说这么多了,剩下的自己去解决吧。刚开始要养成独立解决问题的习惯和能力,要养成自学的能力。
        加油吧,我在长沙校区,在网上碰见个校友不容易啊。
      
      

  2.   

    class Comparatorsort implements Comparator{
      public int compare(Object o1,Object o2)
         {
             BbsMessage t1 = (BbsMessage)o1;
             BbsMessage t2 = (BbsMessage)o2;
             int i1 = t1.getDate();
             int i2 = t2.getDate();
             if(i1 > i2)
               return 1;//return -1;降序
             if(i1 < i2)
               return -1;//return 1;降序
             return 0;
         }
    }Collections.sort(al, new Comparatorsort());
      

  3.   

    改了下你的代码import java.util.Date;
    public class BbsMessage {
    private String title;
    private String content;
    private String author;
    private Date date;
    private String sortCol; public String getTitle() {
    return title;
    } public void setTitle(String title) {
    this.title = title;
    } public String getContent() {
    return content;
    } public void setContent(String content) {
    this.content = content;
    } public String getSortCol() {
    return sortCol;
    } public void setSortCol(String sortCol) {
    this.sortCol = sortCol;
    } public String getAuthor() {
    return author;
    } public void setAuthor(String author) {
    this.author = author;
    } public BbsMessage() {
    this.date = new Date();
    } @Override
    public String toString() {
    return title + "---" + content + "---" + author + "----" + date;
    } public Date getDate() {
    return date;
    }}
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.Scanner;public class Bbs { public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    ArrayList<BbsMessage> al = new ArrayList<BbsMessage>();
    do {
    System.out.println("请输入标题---内容----作者");
    BbsMessage hm = new BbsMessage();
    hm.setTitle(sc.next());
    hm.setContent(sc.next());
    hm.setAuthor(sc.next());
    al.add(hm);
    sc.nextLine();
    System.out.println("是否继续(n退出,任意键继续)");
    } while (!"n".equalsIgnoreCase(sc.next())); System.out.println("Title排序");
    Collections.sort(al, new Comparator<BbsMessage>() {
    @Override
    public int compare(BbsMessage s1, BbsMessage s2) {
    return s1.getTitle().compareTo(s2.getTitle());
    }
    }); Iterator<BbsMessage> it = al.iterator();
    while (it.hasNext()) {
    BbsMessage bm = it.next();
    System.out.println(bm.toString());
    } System.out.println("时间排序");
    Collections.sort(al, new Comparator<BbsMessage>() {
    @Override
    public int compare(BbsMessage s1, BbsMessage s2) {
    return s1.getDate().compareTo(s2.getDate());
    }
    }); it = al.iterator();
    while (it.hasNext()) {
    BbsMessage bm = it.next();
    System.out.println(bm.toString());
    } }}