qq_29849529 2022-08-05 15:49 采纳率: 44.4%
浏览 83
已结题

list怎么根据权重排序

一个搜索列表的接口,要求列表展示出来:优先展示字数最少的,字数相同的情况下,按引用次数排序,引用次数相同的情况下,按字母排序,这个我看过es做过,但是es不会玩儿,还没到那个水准- -javaAPI应该怎么实现啊

  • 写回答

4条回答 默认 最新

  • 小秋Kaito 2022-08-05 16:17
    关注

    如果是你自己的需求需要实现一个有该功能的接口的话,调用需要排序的列表的sort方法,入参实现Comparator接口,重写里面的compare方法

            // list是你要排序的对象的List(或其他集合)
            // 这里假设你要排序的对象是Book类
            List<Book> list = new ArrayList<>();
            // 填充数据...后用sort方法排序
            list.sort(new Comparator<>() {
                @Override
                public int compare(Book o1, Book o2) { // 这里o1 o2对象需要跟你要排序的对象是同类
                    // 先按字母数量从小到大排序
                    if (o1.getWordNum() != o2.getWordNum()){
                        return o1.getWordNum() - o2.getWordNum();
                    }
                    // 按引用次数从小到大排序
                    if (o1.getReferedTimes() != o2.getReferedTimes()){
                        return o1.getReferedTimes() - o2.getReferedTimes();
                    }
                    // 按字母从小到大排序
                    return o1.getLetters() - o2.getLetters();
                }
            });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)