You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改嵌套循环调整击剑选手对阵PDF表格的输出顺序

修改击剑选手对阵循环以优化参赛顺序

原代码

for (Fencerss fencer1 : team1.getFencers()) {
    for (Fencerss fencer2 : team2.getFencers()) {
         PdfPCell cell1 = new PdfPCell(new Phrase(fencer1.getName() + " " + "(" + fencer1.getNation() + ")"));
         PdfPCell cell2 = new PdfPCell(new Phrase(" "));
         PdfPCell cell3 = new PdfPCell(new Phrase(" "));
         PdfPCell cell4 = new PdfPCell(new Phrase(fencer2.getName() + " " + "(" + fencer2.getNation() + ")"));
         table.addCell(cell1);
         table.addCell(cell2);
         table.addCell(cell3);
         table.addCell(cell4);
   }
}

当前输出

Fencer1 " " " " Fencer3
Fencer1 " " " " Fencer4
Fencer2 " " " " Fencer3
Fencer2 " " " " Fencer4

期望输出

Fencer1 " " " " Fencer3
Fencer1 " " " " Fencer4
Fencer2 " " " " Fencer4
Fencer2 " " " " Fencer3

修改后的代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

// 提前获取team2的选手列表
List<Fencerss> team2Fencers = team2.getFencers();

for (int i = 0; i < team1.getFencers().size(); i++) {
    Fencerss fencer1 = team1.getFencers().get(i);
    List<Fencerss> currentTeam2;
    
    // 处理team1的第二位选手时,反转team2的遍历顺序
    if (i == 1) {
        currentTeam2 = new ArrayList<>(team2Fencers);
        Collections.reverse(currentTeam2);
    } else {
        currentTeam2 = team2Fencers;
    }
    
    for (Fencerss fencer2 : currentTeam2) {
         PdfPCell cell1 = new PdfPCell(new Phrase(fencer1.getName() + " (" + fencer1.getNation() + ")"));
         PdfPCell cell2 = new PdfPCell(new Phrase(" "));
         PdfPCell cell3 = new PdfPCell(new Phrase(" "));
         PdfPCell cell4 = new PdfPCell(new Phrase(fencer2.getName() + " (" + fencer2.getNation() + ")"));
         table.addCell(cell1);
         table.addCell(cell2);
         table.addCell(cell3);
         table.addCell(cell4);
   }
}

说明

原循环对每一位team1选手都按固定顺序遍历team2,导致Fencer3的参赛场次间隔不合理。修改后:

  • 遍历team1选手时通过索引判断是否为第二位选手
  • 对第二位team1选手,反转team2的遍历顺序,让Fencer4连续参加第2、3场比赛,Fencer3则在第1、4场参赛,符合击剑比赛中选手需要连续或间隔参赛的准备需求。

内容的提问来源于stack exchange,提问作者Moustafa Amr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:55:39