public static <E> void sort(List<E> source, final String orderField, final boolean asc) {
if (CollectionUtils.isNotEmpty(source) && StringUtils.isNotBlank(orderField)) {
Collections.sort(source, new Comparator<E>() {
@Override
public int compare(E o1, E o2) {
Integer o1order = 0;
Integer o2order = 0;
try {
o1order = StringUtil.toInt(PropertyUtils.getProperty(o1, orderField));
o2order = StringUtil.toInt(PropertyUtils.getProperty(o2, orderField));
} catch (Exception e) {
}
if (asc) {
return o1order.compareTo(o2order);
} else {
return o2order.compareTo(o1order);
}
}
});
}
}
public static void sortByList(List<Map<String, Object>> dataList, String sortField, List<String> sortByList) {
Collections.sort(dataList, ((o1, o2) -> {
int io1 = sortByList.indexOf(MapUtils.getString(o1, sortField));
int io2 = sortByList.indexOf(MapUtils.getString(o2, sortField));
if (io1 != -1) {
io1 = dataList.size() - io1;
}
if (io2 != -1) {
io2 = dataList.size() - io2;
}
return io2 - io1;
}));
}
public static <T> void remove(List<T> list, int index) {
if (list.size() > index) {
for (int i = 0; i < index; i++) {
list.remove(0);
}
} else {
list.clear();
}
}