java集合排序
2017-07-20 09:22
190 查看
1、java实现集合排序就两种方式
第一种:实体实现Comparable 接口,再 Collections.sort();
第二种:直接一点,
详细一点,降序:
当然还可以,多属性排序:
工具类下载地址:加QQ群494808400 在群文件->java工具类栏目中。
全CSDN的丰(好)色(se)博客,这里有书本看不到的Java技术,电影院禁播的电影,欢迎关注QQ群494808400
第一种:实体实现Comparable 接口,再 Collections.sort();
第二种:直接一点,
Collections.sort(students, new Comparator<Student>() { public int compare(Student arg0, Student arg1) { return arg0.getScore().compareTo(arg1.getScore()); } });
详细一点,降序:
Collections.sort(students, new Comparator<Student>(){ * int compare(Student o1, Student o2) 返回一个基本类型的整型, * 返回负数表示:o1 小于o2, * 返回0 表示:o1和o2相等, * 返回正数表示:o1大于o2。 public int compare(PerReportDTO o1, PerReportDTO o2) { if(o1.getFinal_accord_pro() < o2.getFinal_accord_pro()){ return 1; } if(o1.getFinal_accord_pro() == o2.getFinal_accord_pro()){ return 0; } return -1; } });
当然还可以,多属性排序:
/** * 对list的元素按照多个属性名称排序, * list元素的属性可以是数字(byte、short、int、long、float、double等,支持正数、负数、0)、char、String、java.util.Date * * * @param lsit * @param sortname * list元素的属性名称 * @param isAsc * true升序,false降序 */ public static <E> void sort(List<E> list, final boolean isAsc, final String... sortnameArr) { Collections.sort(list, new Comparator<E>() { public int compare(E a, E b) { int ret = 0; try { for (int i = 0; i < sortnameArr.length; i++) { ret = _listUtils.compareObject(sortnameArr[i], isAsc, a, b); if (0 != ret) { break; } } } catch (Exception e) { e.printStackTrace(); } return ret; } }); }
// 按userId升序、username降序、birthDate升序排序 String [] sortNameArr = {"userId","username","birthDate"}; boolean [] isAscArr = {true,false,true}; _listUtils.sort(list,sortNameArr,isAscArr); System.out.println("\n--------按按userId升序、username降序、birthDate升序排序(如果userId相同,则按照username降序,如果username相同,则按照birthDate升序)------------------"); printfUserInfoList(list); // 按userId、username、birthDate都升序排序 _listUtils.sort(list, true, "userId", "username","birthDate"); System.out.println("\n--------按userId、username、birthDate排序(如果userId相同,则按照username升序,如果username相同,则按照birthDate升序)------------------"); printfUserInfoList(list); // 按userId、username都倒序排序 _listUtils.sort(list, false, "userId", "username"); System.out.println("\n--------按userId和username倒序(如果userId相同,则按照username倒序)------------------"); printfUserInfoList(list); // 按username、birthDate都升序排序 _listUtils.sort(list, true, "username", "birthDate"); System.out.println("\n---------按username、birthDate升序(如果username相同,则按照birthDate升序)-----------------"); printfUserInfoList(list); // 按birthDate倒序排序 _listUtils.sort(list, false, "birthDate"); System.out.println("\n---------按birthDate倒序-----------------"); printfUserInfoList(list); // 按fRate升序排序 _listUtils.sort(list, true, "fRate"); System.out.println("\n---------按fRate升序-----------------"); printfUserInfoList(list); // 按ch倒序排序 _listUtils.sort(list, false, "ch"); System.out.println("\n---------按ch倒序-----------------"); printfUserInfoList(list);
工具类下载地址:加QQ群494808400 在群文件->java工具类栏目中。
全CSDN的丰(好)色(se)博客,这里有书本看不到的Java技术,电影院禁播的电影,欢迎关注QQ群494808400
相关文章推荐
- Java集合中的排序API分析
- JAVA基础再回首(十七)——Set集合、增强for、HashSet类、LinkedHashSet类、TreeSet类、二叉树、Comparator 排序
- 浅谈在java中list集合的排序问题
- java中的数组与集合的排序---摘抄自:http://blog.csdn.net/jonathan_q_bo/archive/2005/11/29/539043.aspx
- 用Java集合中的Collections.sort方法对list排序的两种方法
- Java集合对象排序测试
- java的set集合简单排序
- JAVA对list集合进行排序Collections.sort()
- java 集合排序(Comparable、Comparator)
- Java 数序和集合框架的转化 & Collection.sort()方法排序的两种方式
- Java对List集合中的元素进行排序
- java 几个集合(每个集合取一个数) 进行排序
- java 快速排序 优化 以及扩展到对象 List 集合
- java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)
- 用Java集合中的Collections.sort方法对list排序的两种方法
- JAVA学习【9】 集合框架TreeSet类和TreeMap类的排序
- Java比较器对数组,集合排序二
- Java集合中的排序问题
- Java集合排序及java集合类详解
- java集合排序