权利学习 2022-01-24 12:54 采纳率: 0%
浏览 102

我现在想对一个list写一个排序方法 参数是字段名 和排序类型(正序 倒叙)

我现在想对一个list写一个排序方法 参数是字段名 和排序类型(正序 倒叙) 返回排序过后的list

场景是不能通过数据库做排序和分页 前端传参过来 需要java端做 有啥优雅地方法没 不想一个一个判断参数

  • 写回答

2条回答 默认 最新

  • zcl_1991 2022-01-24 13:12
    关注

    类似这样

    
    Function<AdminUser,Comparable> fun = AdminUser::getId;
           boolean sortType = true;
            ArrayList<AdminUser> list = new ArrayList<>();
            List<AdminUser> sortedList = list.stream().sorted((o1, o2) -> {
                return sortType ? fun.apply(o1).compareTo(fun.apply(o2)) : fun.apply(o2).compareTo(fun.apply(o1));
            }).collect(Collectors.toList());
    
    

    内存分页不可取,数据量小孩问题不大,数据量大就抓瞎了

    评论

报告相同问题?

问题事件

  • 创建了问题 1月24日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?