java - 将数组的String元素随机插入二维数组Java

标签 java arrays random insert 2d

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/

相关文章:

javascript - 如何仅使用所需的一组数字生成数字的加法方程式?

java - 简化 Java 中 if 语句的方法

Java扫描器输入if语句

c# - 限制类型参数

python - 基于numpy 1D数组的2D numpy数组中的智能分配

javascript - 如何识别具有相同类的序列中的哪个 div 被单击

java - 如何才能更有效地调用多个 ListIterator?

scala - 我可以限制 Scala 中数组的大小吗?

c - C语言中如何替换变量名

java - 有哪些 Java 库提供了从给定字符集生成唯一随机字符串组合的功能?