我想将团队成员分配给特定数量的团队,但任何团队中都没有重复的成员。如何删除重复?您好,您能帮我解决这个代码吗?我必须为每个团队分配团队成员。教练可以输入候选人数量、球队数量以及候选人姓名。我可以使用链接列表输入以下详细信息,也可以为其生成随机索引。我正在创建一个二维数组来存储其中的团队和成员的相应数量。但我无法确保每次索引在列表中都是唯一的,即没有歧义。这是代码// 我接受候选人数量并将其存储在链接列表中 // 接受团队数量 / 创建二维数组来存储每个团队的成员 //tn - 团队 //mem - 每个团队中的成员 System.out.println("how many teams do you want: "); tn=sc.nextInt(); mem=num/tn; String arr[][]= new String[tn][mem]; //shuffling the list Collections.shuffle(name); for(i=0;i<tn;i++) { for(j=0;j<mem;j++) { //calculating random index index=random.nextInt(num);//storing element of list in 2d array. arr[i][j]=name.get(index); name.remove(index);//removing the index } //name.remove(index); }如果有 4 个候选人名为 [ritu、vishal、mohit、harsh],则随机索引会重复2 支球队,则原始结果是球队 1 [ritu,harsh] 球队 2 [harsh,mohit]但预期输出是团队 1[harsh, ritu] 团队 2[vishal, ritu]
2 回答
开满天机
TA贡献1786条经验 获得超13个赞
目前,您从玩家池中随机挑选成员。但被选中的球员仍留在池中。
解决方案:从池中删除选定的玩家。
或者
因为您已经对球员池进行了洗牌:只需将他们按顺序分配给每个后续球队即可。
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
我使用 LinkedList 及其方法 poll(),该方法
检索并删除此列表的头(第一个元素)。
Scanner sc = new Scanner(System.in);
System.out.println("how many teams do you want: ");
LinkedList<String> name = new LinkedList<>(List.of("ritu", "vishal", "mohit", "harsh"));
int tn = sc.nextInt();
int mem = name.size() / tn;
String[][] arr = new String[tn][mem];
Collections.shuffle(name);
for (int i = 0; i < tn; i++) {
for (int j = 0; j < mem; j++) {
arr[i][j] = name.poll();
}
}
添加回答
举报
0/150
提交
取消