L的java学习笔记——数组
程序员文章站
2024-03-04 12:34:47
...
一维数组
数组是可以存放多个同类型数据,比如一些学生的成绩等等。
- 一维数组的声明
int[] arr=new int[5];
这句话左半部分在栈内存中定义了一个名为arr的变量,然后这个变量指向在堆内存创建的5个int类型数据。
注:数组在声明长度后不可改变数组长度
- 初始化
//第一种方法(动态初始化)
int[] array1=new int[5];
arr[0]=1;
arr[1]=2;
...
//第二种方法(静态初始化)
int[] array2={1,2,3,4};
//第三种方法(静态初始化)
int[] array3=new int[]{1,2,3};
//下面是错误的声明方法
int[] array4;
array4={0,1,2}
-
数组的常用操作
用.length方法求数组长度
int[]arr=new int[] {1,2,3};
System.out.println(arr.length);
(目前常用的只有.length,以后还会补充)
二维数组
二维数组其实相当于一维数组里面嵌套着一个一维数组。
- 二维数组声明及初始化
//方法一
int[][] array=new int[3][2]; //表示声明了一个3行2列的二维数组
arr[0][1]=2;
...
其内存分配如图(图中“乱码”是哈希码,相当于c\c++里的地址)
//方法二
int[][] array1=new int[4][];//声明时二维数组的第二维可以省略,但第一维不能省略
//方法三
int[][] array2=new int[][]{{2,3,4},{5,6}};//声明了一个不等长的二维数组
-
常用操作
.length操作
有人就问一维数组求长度就是求它的个数嘛,那二维数组也是求其元素个数吗?
int[][] arr=new int [][] {{1,2,3},{2,4,6,4}};
System.out.println(arr.length);
输出结果:2
多试几个例子就可以发现此时.length获取的是二维数组的第一维(也就是行数)。
那么怎么获取每一行的个数呢?
int[][] arr=new int [][] {{1,2,3},{2,4,6,4}};
System.out.println(arr[0].length);
System.out.println(arr[1].length);
输出结果:
3
4
我们可以使用以下的格式来获取某一行的长度。
//arr为二维数组
int len=arr[N].length;//len所保存的就是arr数组里第N行的个数
数组默认值
我们可以直接用代码来得到这些。
//String类型
String[][] arr1=new String [2][2];
System.out.println(arr1[0][0]);
//int类型
int[][] arr2=new int [2][2];
System.out.println(arr2[0][0]);
//float类型
float[][] arr3=new float [2][2];
System.out.println(arr3[0][0]);
//char类型
char[][] arr4=new char [2][2];
System.out.println((int)arr4[0][0]);
输出结果:
null
0
0.0
0
因为String类型创建的是对象数组,它没初始化时对象为空(null)。因为空字符无法显示,所以将char类型强制转化为int类型更直观。
**以上为个人总结,如有错误之处,还请大佬指出。