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

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 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题