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;
}
以上排序思路为先按类型分别插入数组,再按顺序把小数组插入大数组;