第三章 Java 二维数组(length和length()、使用)
1.length和length()
① 在java中String类可以定义字符串变量和字符串数组,length()用于求String字符串对象的长度,而length用于求String字符串数组的长度。
②length()是求String字符串对象中字符的个数,而length是求字符串数组中有多少个字符串。
2.二维数组的使用
package day3;
/**
* 1.二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
* 其实,从数组底层的运行机制来看,其实没有多维数组。
* 2.二维数组的使用
①二维数组的声明和初始化;
②如何调用数组的指定位置的元素;
③如何获取数组的长度;
④如何遍历数组;
⑤数组元素的默认初始化;
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr=new int[4][3]
外层元素:arr[0],arr[1]
内层元素:arr[0][0]等
针对初始化方式一:int[][] arr=new int[4][5]
外层元素初始化值为:地址值
内层元素初始化值与一维数组初始化情况相同
>数组元素是整型:0
>数组元素是浮点型:0.0
>数组元素是char型:0或'\u0000'非'0'
>数组元素是boolean型:false
>数组元素是string型:null
针对初始化方式二:int arr[][]=new int[4][];
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错。
⑥数组的内存解析。
* @author 26312
*/
public class ArrayTest2 {
public static void main(String[] args) {
//1.二维数组的声明和初始化;
int[] arr=new int[] {1,2,3};//一维数组
//静态初始化
int[][] arr1=new int[][] {{1,2},{2,3,4},{2,5}};
//动态初始化1
String[][] arr2=new String[3][2];
//动态初始化2
String[][] arr3=new String[3][];//调用前必须先声明
//错误写法:
//String[][] str3=new String[][4];
//int[4][3] str4=new int[][];
//int[][] str5=new int[4][3] {{1,2,3},{4,5},{6,7,8}};
//也是正确写法
int[] arr4[]={{1,2,3},{4,5},{7,8,9,10}};
//2.如何调用数组的指定位置的元素;
System.out.println(arr1[0][1]);//2
System.out.println(arr2[1][1]);//null
arr3[1]=new String[4];
System.out.println(arr3[1][0]);//调用前须先赋值
//3.如何获取数组的长度;
System.out.println(arr4.length);//3
System.out.println(arr4[1].length);//2
//4.如何遍历数组
for(int i=0;i<arr4.length;i++) {
for(int j=0;j<arr4[i].length;j++ ) {
System.out.println(arr4[i][j]+" ");
}
}
//5.数组元素的默认初始化
int array[][]=new int[4][3];
System.out.println(array[0]);//地址值[I@515f550a
System.out.println(array[0][0]);//0
System.out.println("*****************************");
float array1[][]=new float[4][3];
System.out.println(array1[0]);//地址值[F@626b2d4a
System.out.println(array1[0][0]);//0.0
System.out.println("*****************************");
String array2[][]=new String[4][3];
System.out.println(array2[0]);//地址值[Ljava.lang.String;@7de26db8
System.out.println(array2[0][0]);//null
System.out.println("*****************************");
String array3[][]=new String[4][];
System.out.println(array3[0]);//null
//System.out.println(array3[0][0]);//报错
System.out.println("*****************************");
//6.数组的内存解析。
}
}