//传入一个集合一
public List<TransferList> sortList(List<TransferList> list1) {
if(list1==null) {
list1 = userDao.getTransferList(); //判断集合是否为空,为空在数据中查询出来进行赋值
}
List<TransferList> helperGetTransferList2 = new ArrayList<>(); //new一个集合二
helperGetTransferList2.addAll(list1); //使用方法将集合一添加到集合二中
Collections.sort(helperGetTransferList2, new Comparator<TransferList>() { //将集合二进行重写sort方法
public int compare(TransferList p1, TransferList p2) { //将集合进行从大到小排序 反之改变一下下面的判断
if (p1.getOrderCount() == p2.getOrderCount()) {
return 0;
} else if (p1.getOrderCount()> p2.getOrderCount()) {
return -1;
} else {
return 1;
}
}
});
//将排好序的集合存进linkesHashmap中进行去重 拿需要进行比较的分值当做KEY 默认将value变为0
Map<String, String> lmap = new LinkedHashMap<>();
for (TransferList tran : helperGetTransferList2) {
String key =tran.getOrderCount().toString();
lmap.put(key, "0");
}
int m=0;
for (String key : lmap.keySet()) { //循环所有的key 此时key中不存在重复数据 并且是按照从大到小排序 将m变量存进去
lmap.put(key, (++m)+"");
}
for (TransferList tran : list1) { //循环传入的集合 将map中的key于集合中的进行比较 一样就将名次进行赋值
for (String key : lmap.keySet()) {
if(tran.getOrderCount().toString().equals(key)) {
tran.setRanking(Integer.parseInt(lmap.get(key)));
}
}
}
return list1;
}