Java语言实现z型数组,数组存在折线,而不是连续的,每次10个,作为一个折线,一共用5个,现在按照折线内的顺序排列怎么实现的呢
看看这个;https://blog.csdn.net/nuist_NJUPT/article/details/120387548
不知道你这个问题是否已经解决, 如果还没有解决的话:在Java的class中:
在Kotlin的class中
在定义接口类型涉及到赋值操作时,一定要注意 不要将定义的接口在父类的构造方法中执行。
对于问题中要求按照折线内的顺序排列Z型数组的情况,可以通过多维数组的方式实现。
首先,创建一个二维数组,大小为5行10列,表示5条折线,每条折线有10个元素。
int[][] zArray = new int[5][10];
接下来,通过循环将元素按照折线内的顺序赋值给数组。可以使用一个标志位flag
表示方向,初始值为1,表示从左到右。当到达折线两端时,将flag
置为-1,表示从右到左。循环变量line
表示当前折线的行号,column
表示当前折线的列号。
int flag = 1;
int line = 0;
int column = 0;
for (int i = 0; i < 50; i++) {
zArray[line][column] = i + 1;
if (column == 9) {
flag = -1;
line++;
} else if (column == 0) {
flag = 1;
line++;
}
column += flag;
}
最后,遍历二维数组输出结果。
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(zArray[i][j] + " ");
}
System.out.println();
}
完整代码如下:
public class ZArray {
public static void main(String[] args) {
int[][] zArray = new int[5][10];
int flag = 1;
int line = 0;
int column = 0;
for (int i = 0; i < 50; i++) {
zArray[line][column] = i + 1;
if (column == 9) {
flag = -1;
line++;
} else if (column == 0) {
flag = 1;
line++;
}
column += flag;
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(zArray[i][j] + " ");
}
System.out.println();
}
}
}
运行结果为:
1 2 3 4 5 6 7 8 9 10
20 19 18 17 16 15 14 13 12 11
21 22 23 24 25 26 27 28 29 30
40 39 38 37 36 35 34 33 32 31
41 42 43 44 45 46 47 48 49 50
这样就实现了按照折线内的顺序排列Z型数组。