直接上代码
数组创建
//直接初始化:“[]”内不能写数字
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = new int[]{1, 2, 3, 4, 5};
//默认初始化:“[]”内写数字,数组内元素全为0
int[] array3 = new int[10];
//数组元素可通过下标访问
System.out.println(array[0]);
//数组名.length 求数组长度
System.out.println(array.length);
//数组长度可以是变量
int n = 10;
int[] array4 = new int[n];
//不同元素类型数组
double[] array5 = {1.0; 2.0, 3.0};
String[] array6 = {"mother", "fu**er", "!!!"};
数组使用
//局部变量使用前必须初始化
int[] array;
system.out.println(array);//报错
//“array”是引用变量,直接打印array的时候,只会打印地址
int[] array = null;
system.out.println(array);//输出null
//数组只有定义的时候可以初始化
int[] array1;
array1 = {1, 2, 3, 4, 5};//报错
int[] array1;
array1 = new int[] {1, 2, 3, 4, 5}//正确
数组遍历,查找,排序,转字符,比较,填充......
import java.util.Arrays;
//数组遍历之增强for循环,for-each
int[] array = {1, 2, 3, 4, 5};
for (int x : array){
//遍历这个数组的时候,把数组中的元素赋值给x
system.out.println(x);
}
//数组转字符串(利用工具类Arrays.toString)
System.out.println(Arrays.toString(array));
//数组排序(利用工具类Arrays.sort)
Arrays.sort(array,0 , 3)//对 [0,3) 区间的元素进行排序
System.out.println(Arrays.toString(array));
//数组查找之Arrays.binerysearch(用于排序后查找目标元素是否在索引)
int key = 5;
int index = Arrays.binarySearch(array, key);
//找到了就返回目标元素的索引,没找到就返回-1
//数组比较(Arrays.equals)
Arrays.equals(array1,array2).sout;
//数组填充(Arrays.fill)
int[] array = new int[10];
Arrays.fill(array, 0,3,9);//现在array里[0, 3)里是9
//数组拷贝(Arrays.copyOf)
int[] copy = Arrays.copyOf(array, array.length*2);//可以当作扩容
//按位置拷贝(Arrays.copyOfRange)
int[] copy = Arrays.copyOf(array, 0, 3);//拷贝了array中 [0, 3) 区间的元素
二维数组定义和初始化
int[][] array = {{1, 2, 3}, {4, 5, 6}};
int[][] array = new int[][] {{1, 2, 3}, {4, 5, 6}};
int[][] array = new int[2][]//可以定义不规则二维数组但行不能省略
二维数组的打印
int[][] array = {{1, 2, 3}, {2, 4, 6}}
//此时打印的是两个地址,二维数组存储的是每个一维数组的地址
System.out.println(Arrays.toString(array));
//要打印二维数组中最小单元元素需要用deepToString
System.out.println(Arrays.deepToString(array));
//或者双层for-each
for(int[] tmp; array){
for(int x, tmp){
System.out.print(x + " ")
}
System.out.println
}