java 排序 工具类_java - 排序工具类

public class SortUtil {

/**

* 对集合中是对象的排序

*

* @param list

* @param param 需要排序的参数名

* @param sort 排序字段 desc代表倒序

* @return

*/

public static List> listSort(List> list, String param, String sort) {

Collections.sort(list, new Comparator() {

@Override

public int compare(Object o1, Object o2) {

try {

Field field1 = o1.getClass().getDeclaredField(param);

field1.setAccessible(true);

String o1s = field1.get(o1).toString();

Field field2 = o2.getClass().getDeclaredField(param);

field2.setAccessible(true);

String o2s = field2.get(o2).toString();

return sortAD(sort, o1s, o2s);

} catch (Exception e) {

e.printStackTrace();

}

return 0;

}

});

return list;

}

/**

* 对集合中是map的排序

*

* @param list

* @param param

* @param sort

* @return

*/

public static List> MapSort(List> list, String param, String sort) {

Collections.sort(list, new Comparator() {

@Override

public int compare(Map o1, Map o2) {

String o1s = o1.get(param).toString();

String o2s = o2.get(param).toString();

return sortAD(sort, o1s, o2s);

}

});

return list;

}

/**

* 确定排序顺序

*

* @param sort

* @param o1s

* @param o2s

* @return

*/

private static int sortAD(String sort, String o1s, String o2s) {

if (sort.equals("desc")) {

if (o1s.compareTo(o2s) < 0) {

return 1;

} else if (o1s.compareTo(o2s) == 0) {

return 0;

} else if (o1s.compareTo(o2s) > 0) {

return -1;

}

} else {

if (o1s.compareTo(o2s) < 0) {

return -1;

} else if (o1s.compareTo(o2s) == 0) {

return 0;

} else if (o1s.compareTo(o2s) > 0) {

return 1;

}

}

return 0;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值