`
zhiweiofli
  • 浏览: 512102 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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()); 
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics