江湖开发者 | Java粉
网站地图
首页> Java> Comparator多个属性排序
2016
08-20

Comparator多个属性排序

Comparator多个属性排序


sql中的order by 是支持多个属性的排序的,java中的Comparator接口是如何实现的呢?


public class SortModel {
	
	public String id;
	
	public int  age;

}
public class TestComparator {
	
	public static void main(String[] args) {
		
		List<SortModel> list = new ArrayList<SortModel>();
		
		SortModel s1 = new SortModel();
		s1.id="A";
		s1.age=10;
		
		SortModel s2 = new SortModel();
		s2.id="B";
		s2.age=12;
		
		SortModel s3 = new SortModel();
		s3.id="B";
		s3.age=11;
		
		list.add(s1);
		list.add(s2);
		list.add(s3);
		
		Collections.sort(list,new Comparator<SortModel>(){
			@Override
			public int compare(SortModel o1, SortModel o2) {
				
				int returnCode=-2;
				returnCode = o1.id.compareTo(o2.id);
				if(returnCode==0){
					returnCode= o1.age-o2.age;
				}
				return returnCode;
			}
		});
		
		for(SortModel s: list){
			System.out.println(s.id +"___"+s.age);
		}
	}

	/**
	 *  输出结果
	 *  A___10
		B___11
		B___12
	 */
	
	
}


Java江湖     
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;