将数组随机拆分为 2 个均匀划分的数组

The*_*cer 1 java arrays split

所以我试图在一个方法中将一个数组均匀地随机分成 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。

Boh*_*ian 5

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)

此代码适用于组中奇数个玩家。

如果您使用的是集合(集合是正确的集合)而不是数组,那么任务会简单得多。