关于list排序的问题 有两个list a和b,分别存有对象ob1,ob2。这两个对象里都有一个日期类型的字段createTime。现在要将a和b存入listc中,然后按照日期字段createTime的值进行排序,请问有什么好的方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把你的对象实现Comparable接口,然后调用Collections.sort()方法就可以 package com.xuz.datastruct.csdn;import java.util.Date;public class MyClass implements Comparable<MyClass> { private Date d; public MyClass(Date d) { this.setD(d); } @Override public String toString(){ return "my value is " + d; } @Override public int compareTo(MyClass o) { if (d.after(o.getD())) { return -1; } if (d.before(o.getD())) { return 1; } return 0; } public void setD(Date d) { this.d = d; } public Date getD() { return d; }}Collections.sort(list); package com.xuz.datastruct.csdn;import java.util.ArrayList;import java.util.Calendar;import java.util.Collections;import java.util.List;public class CompareList { public static void main(String[] args) throws InterruptedException { List<MyClass> list = new ArrayList<MyClass>(); list.add(new MyClass(Calendar.getInstance().getTime())); Thread.sleep(1000); list.add(new MyClass(Calendar.getInstance().getTime())); Thread.sleep(1000); list.add(new MyClass(Calendar.getInstance().getTime())); Thread.sleep(1000); list.add(new MyClass(Calendar.getInstance().getTime())); Thread.sleep(1000); list.add(new MyClass(Calendar.getInstance().getTime())); Thread.sleep(1000); for (MyClass myClass : list) { System.out.println(myClass); } System.out.println(); Collections.sort(list); for (MyClass myClass : list) { System.out.println(myClass); } }} 是的,list中有专门排序的方法:sort()。可以直接使用排序. 还有另一种方法,为你的对象专门写个Comparator.就是实现Comparator接口。然后使用 Collections.Sort(youList,yourComparator), 使用Comparator更方便,因为不需要改变你原来的类,这样就符合了开闭原则。 我想按照createTime字段的降序排列,没有用过Comparator,不知谁能给个例子 Collections.Sort(youList,yourComparator)这种也行 关于写文件的权限问题 【100分】关于 iso-88591-1 gbk utf-8 汉字编码的问题 java中如何在不报警告的情况下,从Session中取出List呢? j2ee学习流程和功能 在WEBWORK当中怎么用标签实现下面这段代码 InetAddress 的 equals方法的实现问题 如何用java实现监听数据库的功能 有关char与byte数组的相互转化问题 struts2.0.6的文件上载大小限制,会的来接分吧 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!! 有谁写过:用java登录远程主机? java 线程问题
package com.xuz.datastruct.csdn;import java.util.Date;public class MyClass implements Comparable<MyClass> {
private Date d; public MyClass(Date d) {
this.setD(d);
}
@Override
public String toString(){
return "my value is " + d;
} @Override
public int compareTo(MyClass o) {
if (d.after(o.getD())) {
return -1;
}
if (d.before(o.getD())) {
return 1;
}
return 0;
} public void setD(Date d) {
this.d = d;
} public Date getD() {
return d;
}
}Collections.sort(list);
package com.xuz.datastruct.csdn;import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;public class CompareList { public static void main(String[] args) throws InterruptedException {
List<MyClass> list = new ArrayList<MyClass>();
list.add(new MyClass(Calendar.getInstance().getTime()));
Thread.sleep(1000);
list.add(new MyClass(Calendar.getInstance().getTime()));
Thread.sleep(1000);
list.add(new MyClass(Calendar.getInstance().getTime()));
Thread.sleep(1000);
list.add(new MyClass(Calendar.getInstance().getTime()));
Thread.sleep(1000);
list.add(new MyClass(Calendar.getInstance().getTime()));
Thread.sleep(1000);
for (MyClass myClass : list) {
System.out.println(myClass);
}
System.out.println();
Collections.sort(list);
for (MyClass myClass : list) {
System.out.println(myClass);
}
}}
还有另一种方法,为你的对象专门写个Comparator.就是实现Comparator接口。
然后使用 Collections.Sort(youList,yourComparator),
使用Comparator更方便,因为不需要改变你原来的类,这样就符合了开闭原则。