ArrayList的排序

在Java里,List是一非常实用且常用的容器,特别在JavaEE里,我经常会用它装载一类Bean的对个对象。今天偶遇上对List的排序问题,现特意写下心得:

 

对于List的排序,Java很有一套:

 

第一步:定义一个比较器:具体为定义一个实现Comparator<T>接口的类,并重写compare方法,定义排序的条件。

                                    这里有几点要注意:1、建议Comparator<T>里德T类型与将要排序的List<T>的T要一致,默认为Object类型。

                                                               2、重写compare方法时,要注意不同比较条件下返回值的区别,返回值可有:1,0,-1,这些返回值的不同会影响到排序的顺序,详见下一例子:

 

public class ArrayComparator implements Comparator<LocationVo>{
	
	@Override
	public int compare(LocationVo obj1, LocationVo obj2) {
		if(obj1.getLength()==obj2.getLength()){
			return 0;
		} else if(obj1.getLength()>obj2.getLength()){
			return 1;
		} else {
			return -1;
		}
	}

}

 然后的步骤就十分简单了:

 

ArrayList<LocationVo> list = new ArrayList<LocationVo>();
.............
 

Collections.sort(list,new ArrayComparator()); 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值