List集合元素几种排序方法总结

List排序

排序方法一(直接排序)
    List<String> names=new ArrayList<String>();
      List<Integer> ages=new ArrayList<Integer>();
      Collections.sort(names);
      Collections.sort(ages);


   排序方法二
      
      实现Comparable接口
       该方法缺点就是只能对单一属性添加进行排序,而且写死在User类中
    public class User implements Comparable<User>
    public int compareTo(User user) {
        //return this.getName().compareTo(user.getName()); //升序
        return user.getName().compareTo(this.getName());  //降序
    }
   Collections.sort(users);

排序方法三
   使用比较器来进行排序,优点可以自己定义排序规则,可以对多属性进行排序
   创建比较器类
   public class UserComparator implements Comparator<User> {
        /**
         * 比较器方法
         * 先按年龄排序从小到大,如果年龄一样的话按id排序
         */
        @Override
        public int compare(User o1, User o2) {
                if(o1.getAge()>o2.getAge())
                        return 1;
                else if(o1.getAge()==o2.getAge()){
                        if(o1.getId()>o2.getId())
                                return 1;
                        else if(o1.getId()==o2.getAge())
                                return 0;
                        else
                                return -1;
                }
                else
                        return -1;
        }
     }

     //创建比较器对象
     UserComparator comp=new UserComparator();
     //调用排序方法
     Collections.sort(users,comp);

猜你喜欢

转载自blog.csdn.net/caisongcheng_good/article/details/79468825