您的位置:首页 > 编程语言 > Java开发

list集合中根据对象排序的问题

2016-08-09 15:05 435 查看
我从数据库拿到数据  是一个list 拿的时候没有根据对象属性排序,继而在网上找到了关于list根据对象排序的问题,下面是一段通用的代码:

public <E> E Sort(List<E> list, String getMethod, String sort) {
Collections.sort(list, new Comparator<Object>() {
@SuppressWarnings("unchecked")
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((E)a).getClass().getMethod(getMethod, null);
Method m2 = ((E)b).getClass().getMethod(getMethod, 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;
}
});
return (E) list;
}
使用的时候  调用这个方法 传三个参数进去 第一个参数:就是你要排序的那个list

第二个参数:你要排序的那个属性的get方法(比如说userId:“getUserId”)

第三个参数:你倒叙还是怎样(倒序:“desc”   顺序:null)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  list 排序 通用 java