我有一个细胞阵列<代码>公共静态小区[][]孤岛=新小区[3][3] 每个细胞都有x和y坐标以及“居住”在细胞内的动物列表。我需要用列表中的随机动物随机填充这个数组<代码>公共静态列表
public static void generateIsland() {
for (int i = 0; i < 10; i++) {
int random = (int) (Math.random() * 100);
if (random < 50) {
allanimals.add(new Bear(500,5,0,0));
} else {
allanimals.add(new Sheep(70,0,0));
}
}
System.out.println("Randomly create all animals list" + allanimals);
int initialcount = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
try {
int randomdata = r.nextInt(0, allanimals.size() );
List<Alive> animalsInCell = new ArrayList<>();
animalsInCell = allanimals.subList(initialcount, initialcount + randomdata);
initialcount += randomdata;
island[i][j] = new Cell(i, j, animalsInCell);
} catch (Exception e) {
island[i][j] = new Cell(i, j, new ArrayList<Alive>());
}
}
}
}
最后,我有一堆空的细胞,我相信这部分是动物。子列表(initialcount,initialcount randomdata) 可以做得更优雅。如何用allanimals列表中的元素填充岛数组?这是我的手机课
@Data
@AllArgsConstructor
public class Cell extends Thread{
private int x;
private int y;
public List<Alive> animals;
//method run()}
首先,我将使用三元(?:)运算符填充这样的初始列表。您仍然可以执行像您的50%版本,但true
或false
更具描述性。
Random r = new Random();
for (int i = 0; i < 10; i++) {
allanimals.add(r.nextBoolean() ? new Bear(500,5,0,0)
: new Sheep(70,0,0));
由于它们已经随机生成,只需迭代列表并按顺序将它们添加到单元格中。或者,如果你真的想再次将它们随机化,你可以洗牌列表,然后添加它们。
Collections.shuffle(allanimals);
到目前为止,这就是我得到的,但我不太确定接下来该怎么办。我(认为)这里发生的是,它到达数组的第一个位置,在0,0处,并生成一个数字。然后转到1,1和2,2,依此类推。我不确定该从那里开始,我相信有一种更有效的方法可以一次填充整行或整列。 此外,我的编译器不允许我像平时一样使用cout或endl?它坚持我使用std::cout,我只是想知道为什么。
问题内容: 我需要使用构造函数创建一个数组,添加一个将数组打印为序列的方法,以及一个使用double类型的随机数填充数组的方法。 到目前为止,这是我所做的: 我正在努力弄清楚如何用在randomFill方法中生成的随机数填充数组。谢谢! 问题答案: 您需要添加逻辑以使用 randomFill 方法将随机值分配给double []数组。 更改 至 然后,您可以调用方法,包括main方法中的list(
问题内容: 我是Java 8的新手,目前无法完全掌握Streams,是否可以使用Stream功能操作填充数组?这是我如何使用标准的for循环来实现的示例代码: 如果有可能,我将如何使用Stream?如果可能,是否方便(性能和可读性明智)? 问题答案: 在这里,您有一个解决方案,它生成数组而不是修改先前定义的变量: 如果要使用并行流,那么避免诸如修改变量(数组或对象)之类的副作用非常重要。这可能会导
我试图用2和5的随机值填充一个数组,但是生成的数字总是从0开始。具体问题如下,以及我目前拥有的代码。 (问题)创建一个名为TwoDarrayu_YourFirstName的公共类,成员如下: 带有头的方法:public静态空填充2DArray(int[][]ma)上述方法将填充ma引用的2D整数数组。数组元素值将在2到5之间随机生成。 到目前为止我的代码:
问题内容: 我有两个表如下。 “面积”表 “读数”表 Readings表中的“ AreaKey”是Areas表中“ AreaKey”的外键。 Areas表已经有一些数据,行ID的范围是1到50。 我想用一些示例数据填充Readings表-(“ Reading”列的随机浮点值介于1.0和100.0之间,以及给定DateTime范围之间ReadingDateTime的随机datetime值;例如,当前
问题内容: 我要问的是已被要求在一个问题很抽象的术语,用(理解)没有具体的答案提供: 在MySQL提示下,如何创建和填充具有1列和1111行的表,其中该列包含2222和5555之间的随机数? 就像是: 已经提出了这个问题,但是要么依赖于外部语言进行循环,要么太笼统了。我想知道是否可以从典型的Linux MySQL提示符下执行此简单操作。 问题答案: 要创建表,请使用: 然后,用随机值填充它,您可以