java list集合如何使用特定字段进行排序呢?
									下文笔者讲述list集合使用特定字段排序的方法分享,如下所示
				 
				
实现思路:
    定义一个实现Comparator接口的方法
	即可实现list集合的自动个对比
例:
   新建ComparatorSort类
      并实现Comparator接口,重写compare方法
  降序排序:
       o1的元素>o2的元素,并返回-1
       o1的元素小于o2的元素,并返回1
  升序排序:
       o1的元素>o2的元素,并返回1
       o1的元素小于o2的元素,并返回-1
 例:
  
import java.util.Comparator;
 
import com.java265.entity.UserInfo;
 
public class ComparatorSort implements Comparator<UserInfo> {
 
    @Override
    public int compare(UserInfo o1, UserInfo o2) {
        if(o1.getAge().compareTo(o2.getAge())==1){
            return -1;
        }else if(o1.getAge().compareTo(o2.getAge())==-1){
            return 1;
        }else{
            return 0;
        }
    }
}
在需要排序的集合上运行collections.sort
Collections.sort(list,new ComparatorSort());
 例2: 借助stream对list中的元素进行排序
多条件排序使用:thenComparing 降序排序使用:reversed() List<User> list = new ArrayList<User>(); User user1 = new User(); user1.setAge(66); user1.setScore(120); list.add(user1); User user2 = new User(); user2.setAge(28); user2.setScore(288); list.add(user2); User user3 = new User(); user3.setAge(26); user3.setScore(189); list.add(user3); List<User> listSort = list.stream().sorted(Comparator.comparing(User::getAge).reversed().thenComparing(User::getScore)).collect(Collectors.toList()); for(User u:listSort){ System.out.println(u.getAge()+"|"+u.getScore()); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

 
			 
                
                
                
               
 
          

