zoukankan      html  css  js  c++  java
  • 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);
    

      

  • 相关阅读:
    假期第五天
    假期第四天
    假期第三天
    假期第二天
    假期第一天
    《如何高效学习》读书笔记六
    十天冲刺-第八天
    十天冲刺第七天
    十天冲刺-第六天
    十天冲刺-第五天
  • 原文地址:https://www.cnblogs.com/charlypage/p/8975422.html
Copyright © 2011-2022 走看看