java_List_排序

当年收藏的一个List 排序的方法,不过现在已经快忘了怎么使用了

/** * List 排序 * @param sortOrder 排序方式 * @param sortName 排序名称 * @param List<Map<String, Object>> * @return */ private static List < Map < String, Object >> sortList(final String sortOrder, final String sortName, List < Map < String, Object >> list) { if (StringUtils.isBlank(sortName)) { return list; } Collections.sort(list, new Comparator < Map < String, Object >> () { public int compare(Map < String, Object > o1, Map < String, Object > o2) { if ("desc".equals(sortOrder)) { //降序 return o2.get(sortName).toString().toUpperCase().compareTo(o1.get(sortName).toString().toUpperCase()); } else { // return o1.get(sortName).toString().toUpperCase().compareTo(o2.get(sortName).toString().toUpperCase()); } } }); return list; } /** * * @param List<?> ?:实体名称 * @param method: 实体中get方法名称 * @param sort :排序 */ public void Sort(List < Class > list, final String method, final String sort) { Collections.sort(list, new Comparator < Class > () { public int compare(Object obja, Object objb) { int ret = 0; try { Method m1 = ((Class) obja).getClass().getMethod(method); Method m2 = ((Class) objb).getClass().getMethod(method); if (sort != null && "desc".equals(sort)) // 倒序 ret = m2.invoke(((Class) objb)).toString().compareTo(m1.invoke(((Class) obja)).toString()); else // 正序 ret = m1.invoke(((Class) obja)).toString().compareTo(m2.invoke(((Class) objb)).toString()); } catch (NoSuchMethodException ne) { ne.printStackTrace(); } catch (IllegalAccessException ie) { ie.printStackTrace(); } catch (InvocationTargetException it) { it.printStackTrace(); } return ret; } }); }