k
kenma
V1
2022/09/07阅读:15主题:默认主题
数组
数组介绍
数据组就是数组,可以存放多个同一类型的数据,是引用类型。
数组的使用

数组的声明

数组细节
-
多个相同类型组合 -
不能不同类型组合混用 -
数组创建后,没有赋值的话,有默认值
int 0 ; short 0; byte 0 ; float 0.0; double 0.0; boolean false; char \u0000; string null;
-
使用数组步骤:声明==> 赋值 ==> 使用 -
数组下标从0开始,数组下标必须在指定范围内使用,否则报:下标越界异常,比如:int [] arr=new int[5]; 则有效下标为 0-4
-
数组属引用类型,数组型数据是对象(object)
数组赋值机制
-
基本数据类型分配机制,赋值就是具体的数据,且互相互不影响
int n1 = 2; int n2 = n1; //n2的值不影响n1
-
数组类型分配机制 数组是引用传递,赋的值是地址,赋值方式是引用传达,会影响原变量的值。

底层逻辑
0x001代表地址,引用地址,地址拷贝,基本数据就是数据拷贝

数组拷贝

数组反转
-
方式1
定义一个数组 arr[] = {11,22,33,44,55,66}
找规律反转
前后交换

int arr1[]={11,22,33,44,55,66};
int temp = 0;
int len = arr1.length;
for(int i=0;i<len/2;i++){
temp = arr1[len-1-i];
arr1[len-1-i] = arr1[i];
arr1[i] = temp;
}
for(int i=0;i<=len;i++){
System.out.print(arr1[i]+"\t");
}
-
方式2
逆序赋值
/*
使用数组的数据拷贝,先逆序遍历赋值给arr2,再将arr2
的地址赋给arr1.
最后遍历输出arr2.
*/
int[] arr1={11,22,33,44,55,66};
int len = arr1.length;
int[] arr2=new int[len];
int temp = 0;
for(int i=len-1 , j=0;i>=0;i--,j++){
arr2[j] = arr1[i];
}
arr1 = arr2;
for(int i=0;i<=len;i++){
System.out.print(arr1[i]+"\t");
}
数组添加和缩减

// 和添加的思路相同
int[] arr1 = {1,2,3,4,5};
do{
int[] arrNew = new int[arr1.length-1];
for(int i=0;i<arr1.length-1;i++){
arrNew[i]=arr1[i];
}
arr1 = arrNew;
System.out.println("缩减后");
for(int i =0;i<arr1.length;i++){
System.out.println(arr1[i]+"\t");
}
if(arr1.length==1){
break;
}
}
while(true)
;
作者介绍
k
kenma
V1