Java学习之==>数组【array】
一、定义数组
/** * 一维数组定义 * * 为数组插入元素 */ public void case1() { // 声明 int[] arr1; // 声明+初始化 int[] arr2 = new int[3]; // 为数组赋值 arr2[0] = 1; arr2[1] = 2; arr2[2] = 3; // 声明+静态初始化,arr3和arr4一样 int[] arr3 = new int[]{1, 2, 3, 4, 5}; int[] arr4 = {1, 2, 3, 4, 5}; }
二、数组的遍历
/** * 一维数组的访问&遍历 */ public void case2() { int[] arr = new int[]{1, 2, 3, 4, 5}; // 普通for循环 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } // foreach, 增强for循环 for (int num : arr) { System.out.println(num); } // 第三种方式,jdk1.8支持该种方式 Arrays.stream(arr).forEach(System.out::println); }
三、二维数组
/** * 二维数组的定义,初始化,访问,遍历 */ public void case3() { // 声明 int[][] arr1; // 声明+初始化 int[][] arr2 = new int[3][2]; arr2[0][0] = 1; arr2[0][1] = 1; // 声明+静态初始化,3*3 int[][] arr3 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; } /** * 二维数组的遍历 */ public void case4() { int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 第一种方式 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.println(arr[i][j]); } } // 第二种方式 for (int[] ints : arr) { for (int i : ints) { System.out.println(i); } } }
四、总结
定义
- 多个相同数据类型的数据按着顺序排列在一起组成的结构
属性
- 名称: 存储数组在内存中的地址
- 索引: 每个元素在数组中都有唯一的位置用于定位元素
- 元素: 数组中的每一个数据,即为元素
- 长度: 即数组中元素的个数
特点
- 元素有序排列
- 内存中空间连续
- 属于引用数据类型
注意
- 长度一旦指定即不可修改
五、练习
1、定义一个整型数组,找最大的元素
/** * 数组练习:定义一个整型数组,找最大的元素 */ public void case1(){ int[] arr = new int[10]; for (int i=0;i<10;i++){ arr[i] = i; } System.out.println(Arrays.toString(arr)); int max = arr[0]; for (int j=0;j<arr.length;j++){ if (arr[j] > max){ max = arr[j]; } } System.out.println(max); }
2、定义一个二维数组,求所有元素的和
/** * 数组练习:定义一个二维数组,求所有元素的加和 */ public void case2(){ // 声明和初始化一个二维数组 int[][] arr = new int[5][3]; // 生成一个二维数组 for (int i=0;i<5;i++){ for (int j=0;j<3;j++){ arr[i][j] = i + j; System.out.print(arr[i][j]+" "); } } // 循环二维数组的每个元素然后相加 int sum = 0; for (int i=0;i<arr.length;i++){ for (int j=0;j<arr[i].length;j++){ sum += arr[i][j]; } } // 换行 System.out.println(); System.out.println(sum); }
3、往数组指定位置插入/删除一个元素
/** * 往数组指定位置插入一个元素 */ int[] insertarray(int[] arr, int index, int value){ int[] newArr = new int[arr.length + 1]; for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } for (int i = newArr.length - 1; i > index; i--) { newArr[i] = newArr[i - 1]; } newArr[index] = value; arr = newArr; return arr; } /** * 删除数组中指定位置的元素 */ int[] deletearray(int[] arr, int index){ int[] newArr = new int[arr.length - 1]; for (int i = 0; i <= arr.length - 1; i++){ if (i < index){ newArr[i] = arr[i]; } else if (i > index){ newArr[i-1] = arr[i]; } } return newArr; }