您的位置:首页 > 编程语言 > Java开发

给Java.util.List按指定顺序排序

2012-03-05 15:01 344 查看
开发中有时需要给List排序,大家都知道List本身是排序的,但它内部排序是按照存入顺序排序的,故而有时候这并不是我们所需要的。

为此,我们需要按照我们的意愿把List里面的object排序。

例子:

实现List里面Object类的配需

Object里面有一个时间字段HH:mm

需要让Object实现Comparable接口,并实现其方法;

packagecom.ringtop.global.entity.livemanage;

importjava.text.ParseException;
importjava.text.SimpleDateFormat;

publicclassPageLiveInfoimplementsComparable{
privateStringliveTime;

publicPageLiveInfo(StringliveTime){
super();
this.liveTime=liveTime;
}

@Override
publicStringtoString(){
return"PageLiveInfo[liveTime="+liveTime+"]";
}

publicStringgetLiveTime(){
returnliveTime;
}

publicvoidsetLiveTime(StringliveTime){
this.liveTime=liveTime;
}

@Override
publicintcompareTo(Objectpf){
PageLiveInfoplf=(PageLiveInfo)pf;
Stringt1=plf.getLiveTime();
Stringt2=this.getLiveTime();

t1="2012-01-01"+t1;
t2="2012-01-01"+t2;

SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm");
intl1=0;
intl2=0;
try{
l1=(int)sdf.parse(t1).getTime();
l2=(int)sdf.parse(t2).getTime();
}catch(ParseExceptione){
e.printStackTrace();
}
returnl2>l1?1:-1;//按照时间的由小到大排列
}

}


让类实现Comparable类并实现其方法后便可以使用Collections的排序方法按照我们指定的序列排序了。

List<Object>list=newArrayList<Object>();
list.add(object1);
list.add(object2);
Collections.sort(list);
//最后打印出来的object就是按照给定的顺序排好序的序列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: