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;

}

});

}

}

java中英文排序_Java 中英文数字排序相关推荐

  1. java 3 9 2 6数字排序_GitHub - JourWon/sort-algorithm: 史上最全经典排序算法总结(Java实现)...

    史上最全经典排序算法总结(Java实现) 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗, ...

  2. java中集合的排序_Java中集合排序的两种方法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  3. java 字段排序_Java多字段排序之冒泡

    场景: 奥运会时期,每场赛事后,对国家的金.银.铜牌进行排序,排序规则如下: 先以金牌排序,金牌数越多,排得越前,如果金牌数相同,则比银牌数,如果银牌数一样多,则比铜牌数,如果铜牌数还一样多,则按国家 ...

  4. java的字典序排序_java实现字典序排序

    2.编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大 写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序. 3.编写一个程序,实现...... 2.编一个程序,定义一个字符 ...

  5. java数组合并排序_Java将两排序数组合并

    早些天给深圳芒果网投了一份简历,接到了面试电话,经过三轮面试,最后也拿到了offer.前两轮面试还好,问的问题都还答的出,到第三轮的时候,出了一道算法题,可能太紧张,思考许久也只给出了解题思路,没有将 ...

  6. java系统排序_Java实现二进制排序树

    在计算机科学中,树是非常重要的数据结构二叉排序树是树的一种特殊情况二叉排序树是,它的每个节点只能有两个子节点,左子树的节点小于其父节点,右子树中的节点大于其父节点. 父节点二进制排序树在搜索中使用非常 ...

  7. java collections.sort 忽略大小写排序_Java Spring Mongo排序忽略大小写问题

    我正在使用Spring-Data-mongodb对MongoDB执行各种请求. 尝试执行分页&时用忽略的情况排序我得到一个例外, 这是我的代码: Sort.Order order = new ...

  8. java怎么给list集合排序_java list集合排序按某一属性排序操作

    我就废话不多说了,大家还是直接看代码吧~ public List sortList(List list){ Collections.sort(list, new Comparator(){ @Over ...

  9. 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析

    上次我们已经为大家介绍过java中插入.分治和快速排序的内容,今天再来为大家介绍一下java中选择排序与归并排序的具体内容,并且通过实际的代码为大家解析. 首先我们需要了解的是,选择排序也是一种简单直 ...

  10. arraylist java 排序_java的arraylist排序示例(arraylist用法)

    写了一个java数组排序示例,这里分享给大家共同学习 package com.yonyou.test; import java.util.ArrayList; import java.util.Col ...

最新文章

  1. 华为云免费体验 怎么使用_华为云Classroom免费向全国高校开放,云端学习更高效...
  2. FATAL ERROR: Could not find ./bin/my_print_defaults
  3. Delphi中uses在interfeace和implementation中的区别
  4. BDC创建物料主数据各个视图
  5. price ceiling
  6. docker -v -it -p 详细说明
  7. 動態修改SiteMapPath路徑
  8. 一起学习C语言:数组(二)
  9. mysql 信号_MySQL
  10. 300WLP、AFLW2000-3D、Biwi Kinect Head Pose Database姿态数据的读取
  11. sql server 加密_SQL Server 2016中的新功能–始终加密
  12. 机器学习入门笔记(四):朴素贝叶斯分类
  13. mie散射理论方程_亚琛工业大学 计算化学方向 之OPT学习笔记第一部分第一节 静态光散射...
  14. VMware vSphere Storage Appliance (VSA) 5.1 群集部署
  15. BZOJ 3676 回文串(回文树)题解
  16. Coverity介绍以及典型缺陷说明
  17. latex如何生成pdf标签/目录?
  18. oracle dbms_lob trim,Oracle - DBMS_LOB函数和用法
  19. getPrepayId php,php微信支付接口开发程序
  20. 如何在WhatsApp中设置两步验证

热门文章

  1. 【Java并发基础】Java内存模型解决有序性和可见性
  2. Flask Template ( 模板学习)
  3. python perl lisp_C,C++,Lisp,Java,Perl,Python
  4. 戴尔电脑风扇声音大的解决方法
  5. android第三方库适配鸿蒙,鸿蒙第三方适配rom
  6. banner图如何放置
  7. 码农的自我修养 - ARM处理器天梯图
  8. 精密测量仪器的气源维护知识
  9. ios app 上传时 ERROR ITMS-90096
  10. C++ VTK VMTK 提取血管中心线