Java - 列表中包含数字的随机团队

时间:2018-06-02 08:11:10

标签: java arrays list random numbers

我是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个小组?

2 个答案:

答案 0 :(得分:0)

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
        }
    }
}

您可以使用它执行其他操作,而不是将信息打印到控制台。例如,生成一个团队对象。在这种情况下,您必须首先构建一个团队类。

答案 1 :(得分:0)

您可以按照以下代码将团队划分为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 [],如果需要为每个团队创建对象,则需要根据需要创建单独的类。

希望,这对您有帮助。