我想將團隊成員分配給特定數量的團隊,但任何團隊中都沒有重復的成員。如何刪除重復?您好,您能幫我解決這個代碼嗎?我必須為每個團隊分配團隊成員。教練可以輸入候選人數量、球隊數量以及候選人姓名。我可以使用鏈接列表輸入以下詳細信息,也可以為其生成隨機索引。我正在創建一個二維數組來存儲其中的團隊和成員的相應數量。但我無法確保每次索引在列表中都是唯一的,即沒有歧義。這是代碼// 我接受候選人數量并將其存儲在鏈接列表中 // 接受團隊數量 / 創建二維數組來存儲每個團隊的成員 //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
提交
取消