所以我试图在一个方法中将一个数组均匀地随机分成 2 个其他数组。
我对 Java 很陌生,我几乎不知道任何 Array 方法,也不知道在哪里可以找到它们。
这是我到目前为止所拥有的:
public void makeTeams(){
Player[] online = this.getServer().getOnlinePlayers();
Player[] team1;
Player[] team2;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Bukkit 中的 Player 类型,这是一个 Minecraft API。
该Collections框架有更多的好处——你通常应该避免使用数组,除非你真的需要使用它们。尽管如此,由于您要求使用数组,因此您可以使用以下方法 Collections以下方法为您完成繁重的工作。
要创建两个大小相等的团队,请从一组中随机选择团队成员:
Player[] online = getServer().getOnlinePlayers(); // don't need to code "this."
List<Player> list = Arrays.asList(online);
Collections.shuffle(list);
Player[] team1 = list.subList(0, list.size() / 2).toArray(online);
Player[] team2 = list.subList(list.size() / 2, list.size()).toArray(online);
Run Code Online (Sandbox Code Playgroud)
此代码适用于组中奇数个玩家。
如果您使用的是集合(集合是正确的集合)而不是数组,那么任务会简单得多。