嗨,我現在正在使用Guava的Lists.partition方法將一組給定的UUID分割成單獨的子列表。這裏是我的代碼目前:Java Lists.partition無法正常工作
public static List<List<UUID>> splitPlayers(Set<UUID> players, int numTeams) {
List<UUID> playerList = new ArrayList<>(players);
int partitionSize = players.size()/numTeams;
Collections.shuffle(playerList);
return Lists.partition(playerList, partitionSize);
}
問題是,這並不總是如何我想要的。
需要明確的是,這是我想要的工作:
您提供了一組UUID的,並且指定要爲主,集拆分成(numTeams)的多少子列表。基於此,該方法應該將Set分割成numTeams數量的子列表,而不是將多個或更少的子列表分配給給定的numTeams。
事情是,它不這樣工作。下面是如何它無法正確目前的工作的一個示例:代替
- 傳遞含有5個UUID元件的方法的集具有2
- 該方法返回含有3子列表的列表的numTeams,預計2.
我有一種感覺,解決這將需要我在計算partitionSize執行一些額外的邏輯。唯一的是我不知道如何做到這一點。
任何幫助將不勝感激。提前致謝。
非常感謝您! – Luke