Java 用菱形数字填充二维数组
我需要一些使用嵌套for循环填充二维数组的帮助。 所需的输出是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
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