首页 > 编程知识 正文

java中英文排序Java 中英文数字排序,java数字排序

时间:2023-05-05 16:06:56 阅读:260196 作者:4863

public class SortList{public static Logger loger = LoggerFactory.getLogger(SortList.class);/***

* 方法描述:自定义排序(这里暂时只支持3种属性同时排序,后面要加属性可扩展下面哪种类型的排序的if else)

* 这里是根据中英文首字母第一排序

*@param1 list 要排序的对象集合

*@param2 methods 要排序的对象属性

*@param3 sorts 属性是降序还是升序 如果传NULL 默认升序(sorts数组跟methods是一个一个对应的)

* @Title: Sort

*

* @modifier*/@SuppressWarnings("all")public void Sort(List list, final String[] methods, finalString[] sorts){

Collections.sort(list,newComparator() {public intcompare(Object a, Object b) {int ret = 0;try{if(methods==null || methods.length==0){

loger.error("未传入排序字段");

}else{

Method m1= ((E)a).getClass().getMethod(methods[0], null);

Method m2= ((E)b).getClass().getMethod(methods[0], null);if(sorts == null || sorts.length==0 || "asc".equals(sorts[0])){

ret= ChinaInitial.getPYIndexStr(m1.invoke(((E)a), null).toString(),false).substring(0, 1).compareTo(ChinaInitial.getPYIndexStr(m2.invoke(((E)b), null).toString(),false).substring(0, 1));

}else{

ret= ChinaInitial.getPYIndexStr(m2.invoke(((E)b), null).toString(),false).substring(0, 1).compareTo(ChinaInitial.getPYIndexStr(m1.invoke(((E)a), null).toString(),false).substring(0, 1));

}if(methods.length>1){for(int i = 0;i

String method=methods[i];

Method m3= ((E)a).getClass().getMethod(method, null);

Method m4= ((E)b).getClass().getMethod(method, null);

Object m3Obj= m3.invoke(((E)a), null);

Object m4Obj= m4.invoke(((E)b), null);if(m3Obj instanceofDate){if(ret==0){if(sorts==null || sorts.length==0 || sorts[i].equals("asc")){

ret=((Date)m4Obj).compareTo((Date)m3Obj);

}else{

ret=((Date)m3Obj).compareTo((Date)m4Obj);

}

}

}else if(m3Obj instanceofInteger){if(ret==0){if(sorts==null || sorts.length==0 || sorts[i].equals("asc")){

ret=((Integer)m4Obj).compareTo((Integer)m3Obj);

}else{

ret=((Integer)m3Obj).compareTo((Integer)m4Obj);

}

}

}

}

}

}

}catch(Exception e){

loger.error("异常",e);

}returnret;

}

});

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。