java - 在java中将不重复的随机数添加到二维数组的最简单方法

标签 java arrays duplicates numbers 2d

我试图找出最简单的添加方法是什么,以仅用不重复的数字填充此二维数组。

我尝试使用带有 boolean 值的方法来在添加值之前检查该值(如果它已经存在),但我无法使其工作。

int[][] x = new int[R][C];

for (int i = 0; i < x.length; i++) {
    for (int j = 0; j < x[i].length; j++) {
        double z = (Math.random() * ((30 * (j + 1)) - ((30 * j) + 1)) + 1 + ((30 * j) + 1));
        card[i][j] = (int) z;
    }
}

最佳答案

我想说的最好方法是使用Set数据结构

int row = 2;
int col = 2;
Set<Set<Integer>> rowSet = new HashSet<>();

 for (int i = 0; rowSet.size() < row; i++) {
        Set<Integer> colSet = new HashSet<>(); 

    for (int j = 0; colSet.size() < col; j++) {
    double x = (Math.random() * ((15 * (j + 1)) - ((15 * j) + 1)) + 1 + ((15 * j) + 1));
    colSet.add((int) x);
  }
   rowSet.add(colSet);
}

最后将它们转换为数组

int[][] arr = set.stream()
                     .map(i->i.stream()
                             .mapToInt(Integer::intValue)
                             .toArray())
                     .toArray(int[][]::new);

关于java - 在java中将不重复的随机数添加到二维数组的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779675/

相关文章:

java - 从 ArrayList 问题中删除重复项

python - 同时基于2列删除python数据集中的重复项

java - 设置 fragment View

javascript - Json 数据转入 JavaScript 数组

java - 数组计数不正确

c# - 获取列表中重复项的计数

Java - 如何使用 XML Pull Parser 轻松解析 XML?

java - 从 WSDL 文件生成 Java 代码

java - Java 桌面应用程序的内存分析

arrays - 快速检查相同的值