一维数组
数组的本质是内存中连续的存储单元。数组内的元素类型必须相同。
int[] arr = new int[5]; int[] arr2 = new int[] {1,2,3,4,5}; int[] arr3 = {6,7,8};
数组支持随机访问,但增加、删除元素很慢。
想要增加、删除元素快,应该考虑链表。
heap and stack
在java里,局部变量通常在栈区,new出来的对象、数组通常在堆区。
数组拷贝
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
工具类
// import java.util.Arrays; int[] arr = new int[10]; Arrays.fill(arr, 5); System.out.println(Arrays.toString(arr)); Arrays.sort(arr); //可以自己写个Compartor System.out.println(Arrays.binarySearch(arr, 5));
二维数组
由多个一维数组摞起来的数组
//初始化 int[][] arr = new int[][]{{1,2},{3,4}}; //锯齿数组 int[][] arr2 = new int[2][]; arr2[0] = new int[5]; arr2[1] = new int[6];
//赋值要循环 int[][] arr = new int[5][5]; for (int i=0; i<arr.length; i++) { Arrays.fill(arr[i], 6); }