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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM