📜  java填充二维数组流-Java(1)

📅  最后修改于: 2023-12-03 15:16:34.928000             🧑  作者: Mango

Java填充二维数组流

在Java中,实现二维数组填充过程可以使用流(Stream)来完成。流是一种处理集合数据的高级抽象模型,可以用一种连贯、易读的方式来操作数据。

填充固定值

如果我们需要将二维数组填充为固定的值,可以使用 Arrays 类的 fill() 方法。

int[][] arr = new int[3][3];
int value = 1;
Arrays.stream(arr).forEach(row -> Arrays.fill(row, value));
System.out.println(Arrays.deepToString(arr));

上述代码将定义一个 3x3 的二维数组,并使用流来循环遍历每一行。然后在每一行中使用 Arrays.fill() 方法填充指定的值。最后,通过 Arrays.deepToString() 方法将数组转换为字符串并输出结果。运行结果如下:

[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
填充随机值

如果我们需要将二维数组填充为随机的值,可以使用 Random 类来生成随机数。

int[][] arr = new int[3][3];
Random random = new Random();
Arrays.stream(arr).forEach(row -> Arrays.setAll(row, i -> random.nextInt(10) + 1));
System.out.println(Arrays.deepToString(arr));

上述代码将定义一个 3x3 的二维数组,并使用流来循环遍历每一行。然后在每一行中使用 Arrays.setAll() 方法来生成随机数。生成随机数的过程中,我们可以使用 nextInt() 方法来指定随机数的上限,然后再加上偏移量(这里为 1),来确保随机数的范围在 1 到指定的上限之间。最后,通过 Arrays.deepToString() 方法将数组转换为字符串并输出结果。运行结果如下:

[[5, 6, 8], [4, 1, 7], [9, 4, 4]]
填充序列值

如果我们需要将二维数组填充为序列的值,可以使用 IntStream 类的 range() 方法来生成序列。

int[][] arr = new int[3][3];
AtomicInteger ai = new AtomicInteger();
Arrays.stream(arr).forEach(row -> Arrays.setAll(row, i -> ai.incrementAndGet()));
System.out.println(Arrays.deepToString(arr));

上述代码将定义一个 3x3 的二维数组,并使用流来循环遍历每一行。然后在每一行中使用 Arrays.setAll() 方法来生成序列值。生成序列值的过程中,我们可以使用 AtomicInteger 来记录当前的值,并使用 incrementAndGet() 方法来递增值。最后,通过 Arrays.deepToString() 方法将数组转换为字符串并输出结果。运行结果如下:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
总结

在本文中,我们介绍了如何使用流来填充二维数组。通过 Arrays 类提供的 fill()setAll() 方法,以及 IntStream 类提供的 range() 方法,我们可以快速、高效地填充数组。使用流的好处是可以使代码更加简洁易读,并且可以利用多核处理器来并行地处理数组。