将对象存储在动态数组-Java的静态数组中

时间:2017-12-14 07:36:37

标签: java arrays random

我有一个像这样的动态对象数组:

 private Array<Block> blocks=new Array<Block>();

我正在迭代这个数组:

   for (Block b : blocks) {
    sytem.out.printlan(b);
 //eack block object should be taken and transfer to static array here
  }

我在这里有一个相同类型的空静态数组:

private Block frames[] = new Block[]{};//size should be  4

我想从块数组中获取随机元素并存储在帧数组内?

我该怎么做?

3 个答案:

答案 0 :(得分:1)

查看java hereRandom库。

您可以执行以下操作:

Random rand = new Random();

int randomIndex = rand.nextInt(blocks.size());

frames[i] = blocks.get(randomIndex);

答案 1 :(得分:0)

您可以使用Random内置类来生成随机索引。

通过使用Stream,您可以生成所需数量的索引,从blocks检索值并以简单的方式创建目标数组。

使用4个随机元素创建数组的示例:

Block[] frames = new Random().ints(4, 0, blocks.size())
                             .mapToObj(i-> blocks.get(i))
                             .toArray(Block[]::new);

请注意,如果您不想重复使用相同的索引两次,则应存储生成的索引值。

答案 2 :(得分:0)

使用

{{1}}