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

Posted 城南少年与猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List的定制排序 包括使用lambda表达式来实现的方法相关的知识,希望对你有一定的参考价值。

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表达式来实现的方法的主要内容,如果未能解决你的问题,请参考以下文章

python sorted排序:使用lambda应对各种复杂情况的排序,包括list嵌套dict

Java lambda date排序

排序列表 使用Lambda表达式

List.Sort 与 lambda 表达式

使用Lambda表达式扩展List.Sort()

java 8 Lambda 表达式