什么是数组
数组是相同类型的数据的有序集合
数组描述的是相同类型的若干个数据,按照一定的先后次序排序组成而成的
其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们
数组的声明和创建
数组要声明后才可以使用
dataType[] arrayRefVar;
或
dataType arrayRefVar[];
java语言使用new操作符来创建数组
dataType[] arrayRefVar = new dataType[arraySize];
三种初始化及内存分析
静态初始化
int[] a = {1,2,3,4,5};
动态初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
数组的默认初始化
数组是引用类型,它的元素相对于类的实例变量,因此数组一经分配空间,其中每个元素也按照实例变量的方式被隐式初始化
下标越界以及小结
数组下标的合法区间:[0,length-1]
数组是相同数据类型的有序集合
数组也是对象,数组元素相对于对象的成员变量
数组长度是确定的,不可变的,如果越界则报错”ArrayIndexOutofBounds“
数组的使用
普通的for循环
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
For-Each循环
for(int array: arrays){
System.out.println(array);
}
数组当作方法入参
public static void printArrays(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
}
数组作为返回值
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for(int i = 0, j = arrays.length-1;i < arrays.length ;i++, j--){
result[j] = arrays[i];
}
return result;
}
二维数组
二维数组就是数组的数组,也就是说一个数组中每个元素也是个数组
int[][] array = {{1,2}, {3,4},{5,6}};
// printArray(array[0]);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
多维数组同理进行嵌套
Arrays类的讲解
Arrays类提供了对数组操作的方法
下面是Arrays类中一些常用的方法
static void sort(int[] a);
static void sort(int[] a, int fromIndex, int toIndex);
static String toString(int[] a);
static void fill(int[] a, int val);
static void fill(int[] a, int fromIndex, int toIndex, int val);
冒泡排序
public static int[] sort(int[] a){
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-1-i; j++) {