如何将成员分配到团队而不重复?

我想将团队成员分配给特定数量的团队,但任何团队中都没有重复的成员。如何删除重复?

您好,您能帮我解决这个代码吗?我必须为每个团队分配团队成员。教练可以输入候选人数量、球队数量以及候选人姓名。我可以使用链接列表输入以下详细信息,也可以为其生成随机索引。我正在创建一个二维数组来存储其中的团队和成员的相应数量。但我无法确保每次索引在列表中都是唯一的,即没有歧义。

这是代码

// 我接受候选人数量并将其存储在链接列表中 // 接受团队数量 / 创建二维数组来存储每个团队的成员 //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]


慕神8447489
浏览 85回答 2
2回答

开满天机

目前,您从玩家池中随机挑选成员。但被选中的球员仍留在池中。解决方案:从池中删除选定的玩家。或者因为您已经对球员池进行了洗牌:只需将他们按顺序分配给每个后续球队即可。

一只名叫tom的猫

我使用 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++) {&nbsp; &nbsp; for (int j = 0; j < mem; j++) {&nbsp; &nbsp; &nbsp; &nbsp; arr[i][j] = name.poll();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java