今天也要学习呐 2022-03-13 22:09 采纳率: 68.2%
浏览 159
已结题

希望排行榜上的玩家不会减少

问题遇到的现象和发生背景

离线数仓,需要计算TOP10的玩家的排名,每天会取出分数前10的玩家作为TOP10。但有些玩家会被封号,被封号之后就会从TOP10名单里删除,这样一来TOP10的人数就会变少,变成九个,八个,七个。
现在希望一直能有10个玩家在榜上,想问有没有人遇见过类似的情况,有什么比较好的解决方案吗?

问题相关代码,请勿粘贴截图

无代码

运行结果及报错内容
我的解答思路和尝试过的方法

拿前30个玩家的分数,这样被删除后还可以顶上去,但存在极端情况,如果前30个也都被封号了,还是会少。

我想要达到的结果

希望一直能有10个玩家在榜上,麻烦大家来评论区聊聊自己的思路

  • 写回答

12条回答 默认 最新

  • 一起随缘 2022-03-14 10:15
    关注
    获得0.60元问题酬金

    可以在原有接口中添加一个过滤逻辑,对已经排序的数据筛选出有效账号列表(未封号的),然后取出前十条,如果对你有所帮助望采纳
    实例代码如下:

    //获取排好序的玩家列表playerList
    List<Player> playerList = getPlayerList();
    
    //筛选有效账号列表useablePlayerList
    List<Player> useablePlayerList = playerList.stream().filter(player -> player.getIsValid = 1).collect(Collectors.toList());//getIsValid此处根据代码实际情况来定,为有效的标识
    

    然后就可以对有效列表取出前十逻辑处理。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 创建了问题 3月13日