一、数组的定义
在java中数组属于一种引用类型,可以存放相同类型的元素
二,声明的数组
一维数组声明:数组元素类型+[ ] +数组名;
二维数组声明:数组元素类型+[ ][ ] +数组名;
int[] arr;//int类型的数组,用于存放int类型的元素
float[] arr1;//float类型的数组,用于存放float类型的元素
double[] arr2;//double类型的数组,用于存放double类型的元素
char[][] arr;//char类型的数组,用于存放char类型的元素
String[][] arr1;//String类型的数组,用于存放String类型的元素
double[][] arr2;//double类型的数组,用于存放double类型的元素
三,数组初始化
数组的下标是从0开始的
public class Main {
public static void main(String[] args) {
int[] arr1=new int[]{1,2,3,4};//静态初始化
int[] arr2=new int[4];//动态初始化
arr2[0]=1;
arr2[1]=2;
arr2[2]=3;
arr2[3]=4;
for (int i = 0; i < arr1.length; i++) {//通过length我们可以知道数组的元素个数
System.out.println(arr1[i]);
System.out.println(arr2[i]);
}
}
}
四,数组的引用
数组所引用的对象是在堆上的
arr1和arr2指向了同一个对象(存放在堆中),arr1和arr2作为变量存放在栈中的。
数组的传递引用
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr1={11,21,33,1,2,4};
func2(arr1);//没有调用func
func(arr1);//调用了func
}
public static void func(int[] arr1){
for (int i = 0; i < arr1.length; i++) {
Arrays.sort(arr1);//快速排序
}
func2(arr1);
}
public static void func2(int[] arr1) {
System.out.println(Arrays.toString(arr1));
}
输出结果:
[11, 21, 33, 1, 2, 4]
[1, 2, 4, 11, 21, 33]
五,二维数组
二维数组相当于是一个存放了一个一维数组的一维数组。
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[][] arr=new int[][]{{1,2,3},{3,2,1},{4,5,6}};//在一个一维数组中存放着三个一维数组
System.out.println(Arrays.toString(arr[0]));//通过Arrays.toString()将数组arr[0]的内容快速打印出来
System.out.println(Arrays.toString(arr[1]));//通过Arrays.toString()将数组arr[1]的内容快速打印出来
System.out.println(Arrays.toString(arr[2]));//通过Arrays.toString()将数组arr[2]的内容快速打印出来
System.out.println(arr[0]);//arr[0]为第一个一维数组的地址
System.out.println(arr[1]);//arr[1]为第二个一维数组的地址
System.out.println(arr[2]);//arr[2]为第三个一维数组的地址
}
}
输出结果:
[1, 2, 3]
[3, 2, 1]
[4, 5, 6]
[I@1b6d3586
[I@4554617c
[I@74a14482
用图形来理解
不规则数组`
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[][] arr=new int[2][];
arr[0]=new int[4];//不规则数组,可以指定列数,4列
arr[1]=new int[3];//3列
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
for (int i = 0; i < arr.length; i++) {//length得到出行数
for (int j = 0; j < arr[i].length; j++) {//length得到列数
System.out.print(arr[i][j]+" ");
}
System.out.println( );
}
}
}
输出结果:
[0, 0, 0, 0]
[0, 0, 0]
0 0 0 0
0 0 0