int[] howMany = {2, 3, 4};
String[] elements = {"🏠", "🌾", "🌳"};
String[][] village = new String[3][3];
我想从 elements
创建一个二维 village
数组。在 howMany
数组中有元素出现的次数。如何将这些元素(最大值在 howMany
中)随机插入到二维数组中?
最佳答案
您可以持有一个 ArrayList,其中包含可以进入 village 的所有可能元素。
在你的例子中,列表看起来像这样:
someList = new ArrayList<String>();
for(int i = 0; i < elements.length; i++) {
for(int j = 0; j < howMany[i]; j++) {
someList.add(elements[i]);
}
}
有了这个,我们就有了一个包含所有可能元素的列表。现在我们将开始用我们的随机元素填充矩阵,一个一个地丢弃我们使用的每个元素。
Random rand = new Random();
int n;
for(int x = 0; x < village.length; x++)
for(int y = 0; y < village[0].length; y++)
n = rand.nextInt(someList.size());
village[x][y] = someList.get(n);
someList.remove(n);
}
}
显然,在我的示例中,您应该导入 Random 和 ArrayList。
关于java - 将数组的String元素随机插入二维数组Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67140657/