问题回顾在招标行业中,一个项目的某个部分会有多个投标人。为确定中标人,将组织专家对投标人进行评审。最后阶段,如有特殊原因,允许投标人投标临时调整投标人排名如上图,我们可以点击排名按钮,在弹出框中选择需要的排名,调整投标人排名;问题分析🙌场景1如果我们将第一名调整为第二名第一名,那么第二名和第一名应该反过来,第三名不变,最后变成正确的顺序🙌场景2如果我们把第三名调整为第一名,那么原来的第一名和第二名的排名要减1,最后变成右边的顺序🤦??基于我的浅薄知识,感觉这个问题很棘手。判断这两种情况,然后获取每个元素的新排名,建立新旧排名之间的关联,然后通过这个关联更新数据库。虽然这样也可以,但是最近放弃了这种方法,采用了引入链表来实现,来看看解决方法HashMapparams=newHashMap<>();params.put("projectId",bidder.getProjectId());params.put("sectionId",bidder.getSectionId());LinkedListtemp=newLinkedList<>();//查询当前所有投标人排名LinkedListranks=this.selectBidderRanking(bidder);//先将所有企业的旧排名放入链表中ranks.forEach(i->{temp.add(i.getBidderId());});//移除当前元素【即跳升排名的企业】temp.remove(bidder.getBidderId());//在指定位置插入一个元素【以新排名为位置,重新插入那个企业】temp.add(Integer.parseInt(bidder.getRank())-1,bidder.getBidderId());//更新排名for(inti=0;i