java - 将数组随机拆分为 2 个均分数组

标签 java arrays split

所以我试图在一个方法中将一个数组均匀随机地分成 2 个其他数组。

我是 Java 的新手,几乎不知道任何 Array 方法,也不知道在哪里可以找到它们。

这是我目前所拥有的:

public void makeTeams(){
        Player[] online = this.getServer().getOnlinePlayers();
        Player[] team1;
        Player[] team2;
    }

我正在使用来自 Bukkit 的玩家类型,这是一种 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);

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

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

关于java - 将数组随机拆分为 2 个均分数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21743681/

相关文章:

java - 如何在Java中将 double 值与字符串分开

java - 内部类是轻量级的吗?

java - Liquibase 配置文件内容?

ruby-on-rails - Ruby:卡住数组中的字符串是否也应该单独卡住?

r - 在 R 中的 split() 之后保持数据的原始顺序

java - Android:拆分功能不起作用

java - 无法运行具有 7 个字段的调度程序 cron 表达式

java - 用字典猜词

java - 如何将字符串数组添加到数组列表

java - 如何判断数组下标是否为偶数?