1. 程式人生 > >List的定制排序 包括使用lambda表達式來實現的方法

List的定制排序 包括使用lambda表達式來實現的方法

RR lse ray return sta obj ger pri java

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表達式來實現的方法