list本身是有順序的,list的順序就是插入順序
(1)如果按對象的某個值排序,如id或name,可用如下方法
Collections.sort(rlist, (r1,r2) -> r1.getId().compareTo(r2.getId()));
注:compareTo比較的對象可以是Integer類型,不能是int類型
(2)如果按對象的某種類型排序(有限個數的類型),如type,可用如下方法
private List<Project> sortProject(List<Project> plist) {
List<Project> p1 = new ArrayList<>();
List<Project> p2 = new ArrayList<>();
List<Project> p3 = new ArrayList<>();
List<Project> rlist = new ArrayList<>();
Collections.sort(plist, (r1,r2) -> r1.getId().compareTo(r2.getId()));
plist.forEach(p -> {
if(p.getType().equalsIgnoreCase("pro1")) {
p1.add(p);
}else if(p.getType().equalsIgnoreCase("pro2")) {
p2.add(p);
}else {
p3.add(p);
}
});
rlist.addAll(p1);
rlist.addAll(p2);
rlist.addAll(p3);
return rlist;
}
以上排序思路為先按類型分別插入數組,再按順序把小數組插入大數組;