码迷,mamicode.com
首页 > 编程语言 > 详细

List的定制排序 包括使用lambda表达式来实现的方法

时间:2018-05-01 01:04:23      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:instance   tree   compare   java   方法   lambda   因此   else   list   

1.先实现Comparator的接口 重写compare方法 根据比较大小来返回数值:

比如:(Integer o1  -   Integer o2);

return 1 表示o1>o2;

return -1 表示o1<o2;

return 0 表示 o1 = o2;

因此可以根据这个返回值来设定TreeSet里面的元素升序或者降序排列 ,下面演示的是实现接口并重写的方式来定制排序:

@Override
			public int compare(Object o1, Object o2) {
				
				 if(o1 instanceof People & o2 instanceof People){
				People p1 = (People) o1;
				People p2 = (People) o2;
				if(p1.getAge()>p2.getAge()){
					return -1;
				}else if(p1.getAge()<p2.getAge()){
					return 1;
				}
				 }
				
				return 0;
			}
			
			
		};

 

	List<Integer> li = new ArrayList<Integer>();
		
		li.add(7);
		li.add(0);
		li.add(3);
		
		li.sort(new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {

				Integer i1 = o1;
				Integer i2 = o2;
				if(i1>i2) {
					return 1;
					
				}else if(i1<i2) {
					return -1;
				}
				
				return 0;
			}
			
			
		});

   下面是用lambda表达式的方式来定制排序:

 

	li.sort((o1,o2)->(o2 -  o1   )
		
		);
	
	
	System.out.println(li);

  

List的定制排序 包括使用lambda表达式来实现的方法

标签:instance   tree   compare   java   方法   lambda   因此   else   list   

原文地址:https://www.cnblogs.com/charlypage/p/8975422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!