list排序

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; 

  }

以上排序思路为先按类型分别插入数组,再按顺序把小数组插入大数组;

posted @ 2020-12-12 17:07  来一杯coffee  阅读(3065)  评论(0)    收藏  举报