学习笔记之Java基础——数组
1.数组概述
- 数组是相同类型数据的有序集合
- 关键词:相同类型;有序
- 每个数据成为元素,数组元素可通过下标访问
2.数组声明创建
-
数组的声明与创建
// 数组的声明 // type[] name; 首选声明方法 // type name[]; int[] nums1; int nums2[]; // 数组的创建 // type[] name = new type[size]; int[] nums3 = new int[100];
-
数组的长度:arrays.length,如上述nums3的长度可通过nums3.length获得
-
数组的初始化
// 静态初始化 int[] a = {1, 2, 3, 4, 5, 6}; // 动态初始化,包括默认初始化,默认值为0 int[] b = new int[6]; b[0] = 0; b[1] = 1;
-
数组的特点
- 长度确定,一旦被创建,长度则不可改变
- 元素类型相同
- 元素可为任何类型,包括基本类型和引用类型
- 数组是对象,存储在堆中
- 数组变量属于引用类型,相当于该数组(对象)的成员变量
-
下标合法区间:[0, length - 1]。越界则报错:ArrayIndexOutofBounds
3.数组使用
-
for循环与for-each循环
int[] arrays = {1, 2, 3, 4 ,5}; for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } for (int array : arrays) { System.out.println(array); }
-
数组入参
public void printArray(int[] arrays) { for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } }
-
数组作为返回值
public int[] test(int[] arrays) { int[] res = new int[arrays.length]; for (int i = 0; i < arrays.length; i++) { res[i] = arrays[i]; } return res; }
4.多维数组
-
数组的数组,如二维数组的元素也是一个数组
int[][] array1 = {{1, 2}, {2, 3}, {3, 4}, {4, 5}}; int[][] array2 = new int[4][2];
5.稀疏数组
- 当一个数组中大部分元素为0或同一值,则可用稀疏数组来保存
- 处理方法
- 记录行、列、有多少个不同的值
- 把具有不同值的元素记录在一个小规模数组中,从而缩小程序规模
- 如下图,左为原数组,右为压缩后的数组,第1行([0])存储数组规模,表示6行、7列、共8个值(有意义的元素)
不同的值
- 把具有不同值的元素记录在一个小规模数组中,从而缩小程序规模
- 如下图,左为原数组,右为压缩后的数组,第1行([0])存储数组规模,表示6行、7列、共8个值(有意义的元素)