论坛里的高手 帮我看下 本帖最后由 syj247 于 2010-04-10 19:45:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你怎么把作业给发上来了?看样子你听的课有一半没听懂... 像这么简单 代码又这么多的问题高手是懒得回答的,还好我也是新手,也是菜鸟,重要的是跟你一届的,帮你说一下吧。 按照发布时间和标题排序不是自然排序,是不用实现Comparable接口的,要用第二种方法,实现Comparator接口;你既然已经定义了一个BbsMessage类,那为什么还要HashMap来存储信息?而为什么不创建BbsMessage类的对象出来,再将对象存储在ArrayList里面?实现两种排序只要调用Collections类里面的一个sort(List<E> list, Comparator<E> com)方法(大概是这个样子,具体的去查API),来实现按照发布时间排序和按照标题排序就行了。 我只能说这么多了,剩下的自己去解决吧。刚开始要养成独立解决问题的习惯和能力,要养成自学的能力。 加油吧,我在长沙校区,在网上碰见个校友不容易啊。 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()); 改了下你的代码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()); } }} 红色部分代码 一个需求的架构设计 java telnet到机器配置情况回显 请问:在网络当中,音频、视频、图片的传输方式是什么? java如何操作word,急!!! InvocationTargetException异常是什么异常 求助:如何获得从公网上获得局域网内某一台机器的IP地址.谢谢了&&& java中jTextField中怎么过滤不需要的输入键 怎样使字符串螺旋上升? 请高手帮忙看看我的程序! java学习笔记电子书下载 JTable单元格编辑失败还原
按照发布时间和标题排序不是自然排序,是不用实现Comparable接口的,要用第二种方法,实现Comparator接口;你既然已经定义了一个BbsMessage类,那为什么还要HashMap来存储信息?而为什么不创建BbsMessage类的对象出来,再将对象存储在ArrayList里面?实现两种排序只要调用Collections类里面的一个sort(List<E> list, Comparator<E> com)方法(大概是这个样子,具体的去查API),来实现按照发布时间排序和按照标题排序就行了。
我只能说这么多了,剩下的自己去解决吧。刚开始要养成独立解决问题的习惯和能力,要养成自学的能力。
加油吧,我在长沙校区,在网上碰见个校友不容易啊。
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());
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());
} }}