数组的创建和赋值
Java 语言中数组是用来存储固定大小的同类型元素,即相同数据类型的元素组成的集合我们称之为数组。
通常格式为:
//int(数据类型)[] array(数组命名) = new int(数据类型)[数组长度];
如下图,创建一个数据类型为int的数组:date表示数组里面的元素为10,20,30,40;index表示数组的下标从0开始。
//创建该数组并赋值
int[] array = new int[4];
array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;
还有如下数组的表示方式:
int[] array = {10m,20,30,40};
int[] array = new int[]{10m,20,30,40};
由上可见下表从0开始一一对应从头开始的元素的值,所以我们可以为数组赋值并输出下标为2的值:
int[] arr0 = new int[5];
arr0[2] = 10;
System.out.println(arr0[2]);
注意:
- 数组中能够存储元素数量的最大值称之为该数组的长度(若放入元素超出该数组长度就会报错,此错误为数组下标越界)。
- 数组声明后该数组的长度不可修改。
- 数组声明后没有赋值的下标位置上值为该数组数据类型的初始值(默认值)。
数组的查看与遍历
数组的查看(引用Arrays.toString()工具包):
int [] array = {10,20,30,40,50};
System.out.println(Arrays.toString(array));
数组的元素很庞大,如果一一查看会很麻烦,可以使用循环来遍历数组。
如下:(array.length)表示该数组的长度。
int [] array = {10,20,30,40,50};
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
数组的合并
相同长度的数组合并:
// 需求:将以下两个新的数组合并生成一个新的数组
int[] arr0 = {0, 2, 4, 6, 8};
int[] arr1 = {1, 3, 5, 7, 9};
// 思路:
// 1、声明一个新的数组长度为两个数组长度的和
int[] arr2 = new int[arr0.length + arr1.length];
// 2、将第一个数组循环赋值给新数组
for (int i = 0; i < arr0.length ; i++) {
arr2[i]=arr0[i];
}
// 3、将第二个数组循环赋值给新数组
// 注意:第二个数组赋值时的起始位置为第一个数组的长度
for (int j = 0; j < arr1.length ; j++) {
arr2[j+arr0.length]=arr1[j];
}
//4、查看合并完成的数组
System.out.println(Arrays.toString(arr2));
相同数组长度并按元素下标位置相同依次合并:
int[] arr0 = {0, 2, 4, 6, 8};
int[] arr1 = {1, 3, 5, 7, 9};
int[] arr2 = new int[arr0.length + arr1.length];
for (int i = 0; i < arr0.length ; i++) {
arr2[2*i]=arr0[i];
arr2[2*i+1]=arr1[i];
}
System.out.println(Arrays.toString(arr2));
不同长度的数组合并:
int[] arr0 = {0, 2};
int[] arr1 = {1, 3, 5, 7, 9};
int[] arr2 = new int[arr0.length + arr1.length];
// 循环次数是两个数组中长度最大的那个
int max = arr1.length > arr0.length ? arr1.length : arr0.length;
// 循环次数是两个数组中长度最小的那个
int min = arr1.length < arr0.length ? arr1.length : arr0.length;
// 返回是数组长度最长的那个
int[] maxArray = arr0.length > arr1.length ? arr0 : arr1;
for (int i = 0; i < max; i++) {
if (i < min) {
arr2[2 * i] = arr0[i];
arr2[2 * i + 1] = arr1[i];
} else {
arr2[i + min] = maxArray[i];
}
}
System.out.println(Arrays.toString(arr2));