当前位置:网站首页>Comparator 排序函数式接口

Comparator 排序函数式接口

2022-06-24 12:44:00 51CTO

Comparator是一个函数式接口,功能主要用于自定义排序规则,至于其它功能这里不记录,只记录下如何排序:

目前常用的排序方法:

数组排序、集合排序、集合转化为流排序

      
      
public class sortTest {
public static void main( String[] args) {
List < User > usersList = new ArrayList <>(){
{
for( int i = 0; i < 3; i ++) {
add( new User( "lxc" + i, 20 + i));
}
}
};
// 方式一 -> 数组工具类:Arrays.sort(T[] a, Comparator<? super T> c);
// 方式二 -> 集合的stream()方法:new ArrayList<>().stream().sorted(Comparator<? super T> comparator);
// 方式二 -> 集合工具类:
Collections. sort( usersList, new Comparator < User >() {
@Override
public int compare( User o1, User o2) {
// 倒序
return o2. getAge() - o1. getAge();
// 正序
return o1. getAge() - o2. getAge();
}
});
System. out. println( JSON. toJSONString( usersList, SerializerFeature. PrettyFormat));
}
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

Comparator 排序函数式接口_json

 实际开发中的案例:

若依前后端分离框架中,前台excel模板下载时,后端其实是新建了一个excel,然后把数据填充进去, 内部原理:通过反射来获取要导出的实体类中的每一个字段,添加到list列表中,循环遍历list列表,把带有@Excel注解的字段和@Excel注解中的属性添加到 一个Object[]数组中去,然后把Object[] 数组添加到fields 列表中去,最后把列表转化为流,进行排序。

Comparator 排序函数式接口_java_02

Comparator 排序函数式接口_java_03


原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15696481/5414544