1、一维数组
- 数组是用来存储一组相同数据类型数据的数据结构
- 数组的元素可以是简单数据类型的数据,也可以是引用数据类型的数据
- 无论数组内容是简单类型还是引用类型,数组自己本身都是一种引用类型
- 每个数组元素都有下标,下标从0开始
定义一维数组
int array1[ ];
int [ ] array2,array3;
在数组定义中,不能指定数组的长度,需要在数组的创建阶段来指定
符号“[]”说明声明的是一个数组对象。这两种声明方式没有区别,但是第二种可以同时声明多个数组
// 创建大小为10个整型的数组 int[] array = new int[10]; // 创建大小为5个整型的数组并初始化 int[] array = {1, 2, 3, 4, 5}; // 等号右边的中括号不能填大小,有大括号中的具体数值决定 int[] array = new int[]{1,2,3,4,5};
2、length实例变量
int[] arr = new int[10];
arr.length 表示数组长度
3、一维数组复制
// 从 src 数组 srcPos 位置开始拷贝 length 长度到 dest 数组 destPos 开始的位置
// 参数1:原数组
// 参数2:复制原数组的起始位置
// 参数3:目标数组
// 参数4:目标数组存放的起始位置
// 参数5:复制的长度
System.arraycopy(src, srcPos, dest, destPos, length);
int[] arr1 = new int[5]; int[] arr2 = new int[5]; // 该语句会把 arr1 也指向 arr2 数组,改变 arr2 数组的值,arr1 数组的值也会改变 //arr1 = arr2; // 该语句会把 arr2 数组中的值复制到 arr1 数组中,改变 arr2 中的值,不会影响 arr1 数组 //System.arraycopy(arr2, 0, arr1, 0, arr2.length);
4、二维数组
int[][] two = new int[5][6];
two.length表示数组的行数,two[i].length表示数组的列数。
5、不规则数组
int[][] two = new int[4][]; // 数组有4行
two[0] = new int[1]; // 第1行有1列
two[0] = new int[2]; // 第1行有2列
two[0] = new int[3]; // 第1行有3列
two[0] = new int[3]; // 第1行有4列
6、for-each循环:用来遍历数组
for (数据类型 变量x : 遍历对象) {
应用x的语句
}
// for-each 访问一维数组 public class Array { public static void main(String[] args) { int sum = 0; int[] arr = {1, 2, 3, 4, 5}; for (int i : arr) { sum += i; } System.out.println(sum); } }
结果:15
// for-each 访问二维数组 public class Array { public static void main(String[] args) { int sum = 0; int[][] arr = {{1, 2},{3, 4}}; for (int i[] : arr) { for (int j : i) { sum += j; } } System.out.println(sum); } }
结果:10