我知道如何操作和创建多维数组,但我不知道数组的所有实用程序和特性。我想知道我是否有一个 [5][4]
,我可以把它打印在第一行是顺的,第二行是反的,第三行是顺的。。。等等。
例如:
[1 2 3 4] //in order
[8 7 6 5] //reverse
[9 10 11 12] //in order
[16 15 14 13] //reverse
[17 18 19 20] //in order
正如我的老师所说“定义一个大小为m的二维数组× n。编写一个方法,用1到m的数字初始化这个数组× n按如下方式:第一行,从左到右初始化元素;第二行,从右到左初始化;然后切换顺序。例如,如果m=5;n=4;数组应初始化为:“
我不确定是否应该使用temp方法或其他循环方法来完成。
5条答案
按热度按时间fkvaft9z1#
不像嵌套循环那样有效,可以简单地从1迭代到20并确定行
i
和列j
.IntStream.range(0, N)
.forEach(i -> {
int no = N * i;
IntUnaryOperator jToValue = i % 2 == 0
? j -> no + 1 + j
: j -> no + N - 1 -j;
Arrays.setAll(matrix[i], jToValue);
});
2eafrhcq2#
使用流中的流或循环中的循环,可以创建具有“蛇顺序”的数组,而无需进行任何排序:
另请参见:
•在java中,如何将矩阵逆时针旋转90度?
•是否有其他方法删除字符串中的所有空白?
r6hnlfcb3#
此代码使用流api在数组上迭代。第一个流遍历单层数组,第二个流遍历它们的元素,然后形成一个字符串。此外,根据计数器值,项目从左到右或从右到左进行组合。
bvhaajcl4#
你不能直接倒过来。但可以使用循环并反转可选行:
qlzsbp2j5#
如果我有一个[5][4]大小的二维数组,我可以在第一行按顺序打印,第二行按相反顺序打印,第三行按顺序打印吗。。。等等。
您不清楚如何使用输出,但这里有一个简单的方法:
输出: