博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List排序类
阅读量:5771 次
发布时间:2019-06-18

本文共 2999 字,大约阅读时间需要 9 分钟。

hot3.png

import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.List;/** * 排序List   * @param 
排序的对象 */public class SortList
{ public void sort(java.util.List
list, final String method, final String sort){ Collections.sort(list, new Comparator
() { public int compare(Object a, Object b) { int ret = 0; try{ Method m1 = ((E)a).getClass().getMethod(method, null); Method m2 = ((E)b).getClass().getMethod(method, null); if(sort != null && "desc".equals(sort))//倒序 ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString()); else//正序 ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString()); }catch(NoSuchMethodException ne){ System.out.println(ne); }catch(IllegalAccessException ie){ System.out.println(ie); }catch(InvocationTargetException it){ System.out.println(it); } return ret; } }); } public static void main(String[] args)throws Exception{ class UserInfo{ private Integer id; private String name; private Date date; public UserInfo(Integer id, String name, Date date){ this.id = id; this.name = name; this.date = date; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDate() { return date; } public String getDateFormatted() { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void setDate(Date date) { this.date = date; } @Override public String toString() { return id + ", " + name + ", " + getDateFormatted(); } } List
list = new ArrayList
(); SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); list.add(new UserInfo(3,"b",formater.parse("1980-12-01"))); list.add(new UserInfo(1,"c",formater.parse("1980-10-01"))); list.add(new UserInfo(2,"a",formater.parse("1973-10-01"))); System.out.println("-------原来序列-------------------"); for(UserInfo user : list){ System.out.println(user.toString()); } //调用排序类 SortList
sortList = new SortList
(); System.out.println("--------按id排序------------------"); sortList.sort(list, "getId", "desc"); for(UserInfo user : list){ System.out.println(user.toString()); } System.out.println("---------按name排序-----------------"); sortList.sort(list, "getName", null); for(UserInfo user : list){ System.out.println(user.toString()); } System.out.println("---------按date排序-----------------"); sortList.sort(list, "getDateFormatted", null); for(UserInfo user : list){ System.out.println(user.toString()); } }}

 

转载于:https://my.oschina.net/thinkgem/blog/713418

你可能感兴趣的文章
webpack雪碧图生成
查看>>
搭建智能合约开发环境Remix IDE及使用
查看>>
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
分布式事务中间件 Fescar—RM 模块源码解读
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
java入门第二季--封装--什么是java中的封装
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
NodeJS 工程师必备的 8 个工具
查看>>