java 之list集合按照字段升序或降序

  1. 实体类我就不写了,直接上数据吧!
List<PersionInfo> list=new ArrayList<>(); PersionInfo info1=new PersionInfo("555","33","333");
PersionInfo info2=new PersionInfo("222","44","22");
PersionInfo info3=new PersionInfo("4444","22","333"); PersionInfo info4=new PersionInfo("111","666","333");
PersionInfo info5=new PersionInfo("000","55","333");
list.add(info1);
list.add(info2);
list.add(info3);
list.add(info4);
list.add(info5);
for (int i=0;i<list.size();i++){
            System.out.println(list.get(i).toString()+"11==");
        }

ComparatorUser comparatorUser=new ComparatorUser();
        Collections.sort(list,comparatorUser);
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i).toString()+"22==");
        }

class ComparatorUser implements Comparator{

        @Override
        public int compare(Object object1, Object object2) {
            PersionInfo info1= (PersionInfo) object1;
            PersionInfo info2= (PersionInfo) object2;
            //首先比较年龄,如果年龄相同,则比较名字
            //默认flag值1,默认是升序,如果返回是为-flag则是降序
            int flag=info1.getAge().compareTo(info2.getAge());
            if(flag==0){
                return info1.getName().compareTo(info2.getName());
            }else {

                return flag;
            }
        }
    }

版权声明:本文为jky_yihuangxing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。