二维数组

上图右边的排列两个String类型的元素先构成一个一维数组(陈伟霆 13387654384),然后多个一维数组再叠加,变成二维数组;也可以看成是把array01一维数组的元素放在array02一维数组里面
注意:引用类型的数组堆里面存放的要么是null要么是地址。它的列里面如果是空的,行里面就是null;如果列里面有任何数字包括0,行都会变成地址。
package com.my.nonworking;
/**
*
* @Desciption
* @author Abraham
* @email 1290807550@qq.com
* @version JDK1.8
* @date 2021年3月16日下午2:38:19
*/
public class Array06 {
public static void main(String[] args) {
/*
* 二维数组元素的默认初始化值:先分为外层和内存
* int [][] arr=new int[4][5];
* 这种情况外层输出地址;内层与一维数组情况相同输出:0
*
* float [][] arr1=new float[4][];
* 这种情况外层输出null;内层无法输出说超过长度边界
*
*
*
*
*
*/
int [][] arr=new int[4][5];
System.out.println(arr);//输出的是二维数组的地址:[[I@182decdb
System.out.println(arr[0]);//输出的是里面一维数组的地址:[I@7637f22
System.out.println(arr[0][0]);//输出的是里面对应元素的初始值:0
System.out.println("=================================");
//来试试float浮点型:
float [][] arr0=new float[4][5];//double [][] arr0=new double[4][5];换成double也是一样的
System.out.println(arr0);//输出的是二维数组的地址:[[F@4926097b
System.out.println(arr0[0]);//输出的是二维数组里面一维数组的地址:[F@762efe5d
System.out.println(arr0[0][0]);//输出的是里面对应元素的初始值:0.0
System.out.println("=================================");
//我们再来看看没有完全给定长度的二维数组的初始值:
//float [][] arr1=new float[4][];
//System.out.println(arr1);//输出的同样是二维数组的地址:[[F@7d6f77cc
//System.out.println(arr1[0]);//输出结果:null
//System.out.println(arr1[0][0]);//没有输出结果说:超过了长度的界限
//System.out.println("=================================");
//接下来我们看看String类型的初始值是否不用:
String[][] arr2=new String[4][0];
System.out.println(arr2);//输出的是二维数组的地址:[[Ljava.lang.String;@7d6f77cc
System.out.println(arr2[2]);//输出的是二维数组里面一维数组的地址:[Ljava.lang.String;@5aaa6d82
System.out.println(arr2[0][0]);//没有输出结果说:超过了长度的界限
}
}
一维数组、元素与二维数组、元素之间的互相赋值转换:

杨辉三角:
输出如下图形:

package com.my.nonworking;
/**
*
* @Desciption
* @author Abraham
* @email 1290807550@qq.com
* @version JDK1.8
* @date 2021年3月16日下午9:22:10
*/
public class Array07 {
public static void main(String[] args) {
int[][] arr=new int[11][11];
arr[0][0]=1;
//System.out.println(arr[0][0]);
for(int i=1;i<arr.length;i++) {{
System.out.print("["+(i-1)+"]"+"\t");
}
for(int j=1;j<arr.length;j++) {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
if(arr[i][j]!=0) {
System.out.print(arr[i][j]+"\t");}
}
System.out.println();
}
System.out.print("\t");
for(int i=0;i<(arr.length-1);i++) {
System.out.print("["+i+"]"+"\t");
}
}
}
随机输出长度为10的一维数组,要求元素为两位数的正整数,求它们的最大值、最小值和和值:
math.random()函数是取[0,1)之间的随机数,则math.random()100表示[0,100)之间的随机数,(math.random()40)10表示[0,400)之间的随机数,如需取整则int((math.random()40)10)这样*
package com.my.nonworking;
/**
*
* @Desciption
* @author Abraham
* @email 1290807550@qq.com
* @version JDK1.8
* @date 2021年3月16日下午11:15:07
*/
public class Array08 {
public static void main(String[] args) {
//定义一个int型一维数组,长度为10,分别赋值一些随机整数
//然后求出所有元素的最大值,最小值,和值
//要求:所有随机数都是二位数的整数:
int[] arr=new int[10];
int max=0;
int min=100;
int addarr=0;
System.out.println("十个两位数的随机整数分别为:");
for(int i=0;i<arr.length;i++) {
arr[i]=(int)(Math.random()*90+10);
System.out.print(arr[i]+" ");
if(arr[i]>max) {
max=arr[i];
}
if(arr[i]<min){min=arr[i];}
addarr+=arr[i];
}
System.out.println();
System.out.println("最大值:"+max);
System.out.println("最小值:"+min);
System.out.println("和值:"+addarr);
}
}

浙公网安备 33010602011771号