java compareTo对list中的map进行倒序排序

时间:2025-03-02 08:58:26

类ComparatorList

import ;
import ;

public class ComparatorList implements Comparator{
    
	
	private String compareStr;
	
	public ComparatorList(){
		
	}
	
    public ComparatorList(String compareStr){
	   =compareStr;
	}
	
	@Override
	public int compare(Object o1, Object o2) {
		int flag2=0;
		Map map1=(Map)o1;
		Map map2=(Map)o2;
		int flag=((compareStr)).compareTo(((compareStr)));
		
		//倒序
		if(flag>0){
			flag2=-1;
		}else if(flag<0){
			flag2=1;
		}
		return flag2;
	}
	

}


 

类Test3

import ;
import ;
import ;
import ;
import ;
public class Test3 {
 
 public void test(){
  
 }
 public static void main(String[] args) {
  
  Map map3=new HashMap();
  ("fruits", "apple");
  ("eat_time", "2014072100:01:29");
  
  Map map1=new HashMap();
  ("fruits","orange");
  ("eat_time", "2014072000:20:29");
  
  Map map2=new HashMap();
  ("fruits", "pear");
  ("eat_time", "2014072100:05:29");
  
  List list=new ArrayList();
  (map1);
  (map2);
  (map3);
  
  (list,new ComparatorList("eat_time"));
  
  for(Object o:list ){
    Map m=(Map)o;
    (("fruits")+":"+("eat_time"));
  }
 }
}

// output:

pear:20140721 00:05:29
apple:20140721 00:01:29
orange:20140720 00:20:29

 

总结:

  要想实现自己的比较器,就要实现java提供的Comparator接口,并且覆盖其compare方法,返回值有-1、0、1,分别表示比较的结果,默认是升序排列,要想实现倒序,则要加上特殊处理的代码,如上。