什么是数组?
数组是一种数据结构,用来存储一系列的的元素。
定义数组
方法1
int[] a; //定义数组 a
int[] b = new int[100] // 定义长度为100的数组
// 其实在Java里面,什么都是类,另外因为数组用的十分频繁,有了代号 [];所以定义一个数组实例
// 就是 int[] b = new int[100]
注意:新创建一个指定长度的数组时,数值型的初始化 0 ;布尔型的初始化 false ; 对象数组 初始化为 null
一旦创建了数组就不可以改变它的长度。
方法2
int[] a = {1,2,3,3,4};
无需使用 new
是
a = new int[] {1,2,2,2,2,2}
简化版
遍历数组
注意:数组是一个对象,所以直接print是一个引用指针,而不是一个数组形式。
可以用快速打印 System out.println(Arrays.toString(arrays))
除了用一般的for循环;对于遍历数组;我们可以用 for each循环(注意只能整体打印而不能选择打印)
for (int element : a){
System.out.printLn(element)
}// 打印数组 a 中每一个元素。
arr.length 表示数组的长度
数组拷贝
Java里的伪拷贝,就是将变量的引用拷贝
int[] b = {1,2,3,4};
int[] a = b;
注意因为是引用,所以改变a, b中任何一个都会关联到另外一个。
真正的拷贝:
int[] c = Array.copyOf(b,b.lenght) //第二个参数是拷贝的长度,如果长度多于其本身的长度,数值型的就补零,布尔型补false;
命令行参数问题
为什么每一个Java应用程序的main函数都带有String[] args
这个参数代表main方法将接收一个字符串,也就是命令行参数,就说明在命令行运行这个程序的时候,会将你在命令行附加的参数传入这个主函数。args 这个字符串数组用以接收。
数组排序
使用 Array 类的 sort方法
int[] a = {2,3,1,8,6,5};
Array.sort(a);//直接改变 数组 a 的排序
多维数组
double[][] arrays2;// 声明一个二维数组。
定义完了之后一定要先初始化:
arrays = new double[10][20];
也可以直接赋值:
arrays = {{fafafaf},
{sfafaff}
};
要想快速打印一个数组:System out.println(Arrays.deepToString(arrays))
多维数组的本质
其实多维数组就是一个数组的数组(递归结构);
如果要交换二维数组里的两个行:
double[] temp = b[2];
b[2] = b[3];
b[3] = temp;