目录
3.1:可以按照数组下标进行访问-------(fori函数)
3.2:无法查看数组下标进行访问----(foreach函数)
1.数组的定义
1.数组存放的元素类型相同。
2.数组的空间是连在一起的。
3.每个空间有自己的标号,既数组的下标,从零开始。
2.数组的创建和初始化-------------有三种方法
int:表述数组中存放的元素类型。
int[]:表示数组的类型---。
1.int [] arr=new int [10]: 动态,创建一个存放十个整形的数组。但未初始化,会有默认值。
2.int [] arr={1,2,3,4,5}:静态,数组初始化木有指定长度,根据元素个数确定长度。
3.int[] arr=new int[]{1,2,3,4,5}:根据元素个数来开辟空间。
2.1默认值
类型 | 默认值 |
byte | 0 |
short |
0 |
int | 0 |
long | 0 |
float | 0.0f |
double | 0.0 |
char | /u0000 |
boolean | false |
2.2:数组初始化函数
用例:
3:数组中的元素访问
3.1:可以按照数组下标进行访问-------(fori函数)
public static void main(String[] args) {
int [] arr={9,8,7,6,5,4,3,2,1,0};
for (int i = 0; i <arr.length ; i++) {
//arr.length 计算数组的长度
System.out.print(arr[i]+" ");
//println打印自动换行
//printf("%d",arr[i]),%d是数据类型
}
}
3.2:无法查看数组下标进行访问----(foreach函数)
for (int x:arr ){//int x是数组中元素类型,arr是想查询的数组名
System.out.print(x+" ");
}
4.数组是引用类型
应用类型变量:一般称为对象的引用,其空间中存储的是对象所在空间的地址
5:数组的应用
public static void fun1(int[] arry) {
arry = new int[10];
}
public static void fun2(int[] arry1) {
arr[0] = 99;
}
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
int arr1[] = {1, 2, 3, 4, 5};
fun1(arr);
System.out.println(Arrays.toString(arr));//1
//Arrays.toString 将数组用字符串的形式打印出来
fun2(arr1);
System.out.println(Arrays.toString(arr1));//2
}
猜一猜,1和2 的输出分别是什么。
这道题也说明: 形参指向的改变不会影响实参的指向。
6.数组的拷贝
6.1:Arrays.copyof(数组名,长度)
public static void main(String[] args) {
int [] arr={1,2,3,4,5,6};
int [] arr1=new int [arr.length];
arr1=Arrays.copyOf(arr,arr.length);
System.out.println(Arrays.toString(arr1));
}
6.2:System.arrayscopy--局部拷贝
System.arrayscopy(int [] arr,int star,int[] arr,int end,lenth)
第一个参数:是要被复制的数组名。
第二个参数:要从哪里开始复制的数组下标。
第三个参数:复制到的数组名。
第四个参数:要复制到的数组下标。
第五个参数:复制的元素个数。
public static void main(String[] args) { int [] arr={1,2,3,4,5,6}; int [] arr1=new int [5]; System.arraycopy(arr,3,arr1,2,2); System.out.println(Arrays.toString(arr1)); }
6.3:.clone()----克隆
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
int[] arr1 = new int[arr.length];
arr1 = arr.clone();//arr是你要克隆的数组
System.out.println(Arrays.toString(arr1));
}
上面我们讲的都是一维数组,上面讲的函数都需要导入import.java.util.Arrays.
7.二维数组
二维数组是特殊的一维数组。
7.1:二维数组的定义
1.int [] [] array=new int [2] [3];
int [] [] array=new int [] [] {{1,2,3},{4,5,6}};
int [] [] array={{1,2,3},{4,5,6}};
注意:在java中二维数组定义不可省略行,但可以省略列。
7.2:二维数组的打印
7.2.1:fori打印
public static void main(String[] args) { int arr[][] = {{1, 2, 3}, {4, 5, 6}}; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); } }
是不是看到这里有点不懂?
7.2.2:foreach打印
public static void main(String[] args) {
int arr[][] = {{1, 2, 3}, {4, 5, 6}};
for (int[] arr1 : arr) {
for (int x : arr1) {
System.out.print(x + " ");
}
System.out.println();
}
}
第一个foreach循环,里面是数组类型,从二维数组。
第二个foreach循环,里面是整型,从int arr[]