今天开发中遇到一个需求,对组装成的 List 按某个字段进行排序,刚好就总结了一下 List 排序的集中方法,记录一下
项目中有一个 SysFiled 类,其中有个排序字段 seq,使用该字段进行排序
hasFileds 是需要排序的原始集合
使用 Collections 类的 sort()方法进行匿名内部类排序
-
实现 Comparator 类的 compare 接口进行排序
Collections.sort(hasFileds, new Comparator<SysFiled>() { @Override public int compare(SysFiled o1, SysFiled o2) { return o1.getSeq() - o2.getSeq(); } });
-
简化为 Lambda 表达式:
Collections.sort(hasFileds, (o1, o2) -> o2.getSeq() - o1.getSeq());
-
使用方法引用
// 升序 Collections.sort(hasFileds, Comparator.comparingInt(SysFiled::getSeq)); // 降序 Collections.sort(hasFileds, Comparator.comparingInt(SysFiled::getSeq).reversed());
Java8 以上可以使用 stream 进行排序
会生成一个新的 List
hasFileds = hasFileds.stream().sorted(Comparator.comparingInt(SysFiled::getSeq)).collect(Collectors.toList());
联系方式
作者:永夜
邮箱:Evernight@aliyun.com
以上内容有不正确的地方烦请指正!🙏🙏🙏
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于