Java 用菱形数字填充二维数组

Java 用菱形数字填充二维数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我需要一些使用嵌套for循环填充二维数组的帮助。 所需的输出是 20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 18.0 17.0

我需要一些使用嵌套for循环填充二维数组的帮助。 所需的输出是

20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0
19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0
18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0
17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0
15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0
14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0
13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0
12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0
11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0
10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0
12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0
13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0
14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0
15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0
16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0
17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0
18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0
19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0
20.0 19.0 18.0 17.0 16.0 15.0 14.0 13.0 12.0 11.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0
这是我填充数组的代码

int行;
int列;
int计数器=10;
int计数器1=10;
对于(行=0;行
我已经声明数组是20乘20,而
obj.getZ
只是简单地调用这个方法

public-double-getZ(双x,双y){
双z=(Math.abs(x)+Math.abs(y));
返回z;

数组是由x和y的绝对值构成的z值。

不是最佳解决方案,但它应该解决以下问题:

导入java.util.array;
课堂擦伤{
公共静态void main(字符串[]args){
int[]arr=新int[21][21];
int row=20;
int列=0;
对于(int i=0;i<21;i++){
列=行;
对于(int j=0;j<21;j++){
arr[i][j]=列;
如果(j<10){
列=列-1;
}否则{
列=列+1;
}
}
如果(i<10){
行=行-1;
}否则{
行=行+1;
}
}
对于(int[]arrRow:arr){
System.out.println(Arrays.toString(arrRow));
}
}
}
结果是:

[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

不是最好的解决方案,但它应该解决问题:

导入java.util.array;
课堂擦伤{
公共静态void main(字符串[]args){
int[]arr=新int[21][21];
int row=20;
int列=0;
对于(int i=0;i<21;i++){
列=行;
对于(int j=0;j<21;j++){
arr[i][j]=列;
如果(j<10){
列=列-1;
}否则{
列=列+1;
}
}
如果(i<10){
行=行-1;
}否则{
行=行+1;
}
}
对于(int[]arrRow:arr){
System.out.println(Arrays.toString(arrRow));
}
}
}
结果是:

[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
[13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
[16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
[18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

您可以使用以下方法创建和填充此数组:

int m=10;
int n=10;
int[][]arr=IntStream.rangeClosed(-m,m)
.mapToObj(i->IntStream.rangeClosed(-n,n)
.map(j->Math.abs(i)+Math.abs(j))
.toArray())
.toArray(int[]]::新建);
//输出
Arrays.stream(arr.map)(行->Arrays.stream(行)
.mapToObj(字符串::valueOf)
.collect(收集器.连接(“”))
.forEach(System.out::println);

对于
double[][]
数组,其工作原理相同:

int m=10;
int n=10;
double[][]arr=IntStream.rangeClosed(-m,m)
.mapToObj(i->IntStream.rangeClosed(-n,n)
.mapToDouble(j->Math.abs(i)+Math.abs(j))
.toArray())
.toArray(双[]]::新);
//格式化输出
Arrays.stream(arr.map)(行->Arrays.stream(行)
.mapToObj(i->String.format(“%4.1f”,i))
.collect(收集器.连接(“”))
.forEach(System.out::println);


另请参见:

您可以使用以下方法创建和填充此数组:

int m=10;
int n=10;
int[][]arr=IntStream.rangeClosed(-m,m)
.mapToObj(i->IntStream.rangeClosed(-n,n)
.map(j->Math.abs(i)+Math.abs(j))
.toArray())
.toArray(int[]]::新建);
//输出
Arrays.stream(arr.map)(行->Arrays.stream(行)
.mapToObj(字符串::valueOf)
.collect(收集器.连接(“”))
.forEach(System.out::println);

对于
double[][]
数组,其工作原理相同:

int m=10;
int n=10;
double[][]arr=IntStream.rangeClosed(-m,m)
.mapToObj(i->IntStream.rangeClosed(-n,n)
.mapToDouble(j->Math.abs(i)+Math.abs(j))
.toArray())
.toArray(双[]]::新);
//格式化输出
Arrays.stream(arr.map)(行->Arrays.stream(行)
.mapToObj(i->String.format(“%4.1f”,i))
.collect(收集器.连接(“”))
.forEach(System.out::println);


另请参见:

谢谢我使用了您的想法并进行了一些编辑以适应我的代码,但效果非常好谢谢我使用了您的想法并进行了一些编辑以适应我的代码,但效果非常好
20,0 19,0 18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0 19,0 20,0
19,0 18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0 19,0
18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0
17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0
16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0
15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0
14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0
13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0
12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  2,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0
11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  2,0  1,0  2,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0
10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  2,0  1,0  0,0  1,0  2,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0
11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  2,0  1,0  2,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0
12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  2,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0
13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  3,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0
14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  4,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0
15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  5,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0
16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  6,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0
17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  7,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0
18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0  8,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0
19,0 18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0  9,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0 19,0
20,0 19,0 18,0 17,0 16,0 15,0 14,0 13,0 12,0 11,0 10,0 11,0 12,0 13,0 14,0 15,0 16,0 17,0 18,0 19,0 20,0