【问题标题】:Java - Random Team with Numbers from listJava - 随机团队与列表中的数字
【发布时间】:2018-11-12 06:29:54
【问题描述】:

我是java初学者 我想用数字创建一个随机团队

我正在考虑将这个随机列表分成 3 个团队,我应该怎么做? 因为一个团队只有 2 名成员

import java.util.Arrays;
import java.util.Collections;
public class RandomTeam {
  public static void main(String[] args) {
    Integer[] arr = new Integer[8];
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i;
    }
    Collections.shuffle(Arrays.asList(arr));
    System.out.println(Arrays.toString(arr));
  }
}

输出

[3, 4, 2, 6, 7, 5, 0, 1]

如何将这个随机列表分成 3 个团队?

【问题讨论】:

  • 你到底想问什么?
  • 如何将这个随机列表分成 3 个团队?
  • 将前三个元素放入团队 1(你是如何存储的?),将接下来的三个放入团队 2,最后两个元素放入团队 3。
  • 您的数组中有 8 个 ID 的人员,您希望生成 3 个团队,其中有两个成员。问题是什么?剩下 2 个人将不是团队成员。
  • 是的,我是这样想的,但我不知道如何编码

标签: java arrays list random numbers


【解决方案1】:

Collections.shuffle(Arrays.asList(arr));之后添加如下代码:

int teams = 3;
int teamSize = 2;
if (arr.length >= teams * teamSize) // check if array contains enough IDs
{
    for (int i = 0; (i < arr.length) && (i < teams * teamSize); i += teamSize) {
        System.out.println("Team: " + i/teamSize+1); // print team number
        for (int j = 0; j < teamSize; j++)           // get all team members
        {
            System.out.println(arr[i+j]);            // print ID of team member of team
        }
    }
}

除了将信息打印到控制台之外,您还可以用它做其他事情。例如生成一个团队对象。在这种情况下,您必须先构建一个团队级。

【讨论】:

  • @Gu1Ldr4n 我在我的解决方案中发现了一些小错误(例如团队编号错误)并已修复。
【解决方案2】:

您可以将团队划分为 2 人,如以下代码:

import java.util.Arrays;

public class RandomTeam {
  public static void main(String[] args) {

    int arr[] = new int[8];
    for (int i = 0; i < arr.length; i++) {
      arr[i] = i;
    }
    int numberOfTeams = 3;
    int sizeOfTeam = 2;
    int newTeam[] = new int[2];
    if (arr.length >= (numberOfTeams * sizeOfTeam)){
      for (int i = 0; i < (numberOfTeams*sizeOfTeam); i+=sizeOfTeam) {

        newTeam[0] = arr[i];
        newTeam[1] = arr[i+1];
        Printing((i+1), newTeam);
      }
    }
  }

  public static void Printing(int id, int arr[]) {
    System.out.println("Team{" +
            "id = " + id +
            ", members = " + Arrays.toString(arr) +
            '}');
  }
}

当循环的每一次迭代,newTeam[]都会被新的团队替换,如果你需要为每个团队创建对象,那么你需要根据你的需要创建单独的类。

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 2022-11-23
    • 2016-10-11
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多