数组是相同类型数据的 有序 集合。
数组描述的是 相同类型 的若干数据,按照一定的 先后次序 排列组合而成。
每个数据被称为一个 元素 ,每个数组元素可以通过 下标 来访问他们。(下标从0开始)
声明:数组的类型 数组的名字 = 变量值
① int[ ] array; ② int array[ ]
java语言用new操作符来创建数组
int[] nums;// 定义 = int nums[] 一般不使用 nums = new int[10];//存放10个int类型的数字 // ①动态初始化 包含默认值 nums[0] = 1; // 给下标为0的数赋值为1 nums[1] = 2; . . . nums[9] = 10;//不可越界 数组长度一旦定义后不可改变 //输出的下标没有元素,默认为0。 ********************************************************* // ②静态初始化 int[] a={1,2,3,4,5,6,7,8,9,10}
获取数组长度: 数组名.length
// 打印数组全部元素:①需先遍历数组 ② sum += a[i] for( int i=0;i< a.length;i++){ Syestem.out.println(a[i]);// 若是求所有元素的和:sum += a[i];/ sum = sum+nums[i]; } /*求最大值步骤:①for遍历 ② if判断:if(a[i]>max) ③必须先给max赋初值 int max =a[0] ④将偏大的值赋值给max:max = a[i];*/
普通for循环,如上
增强for循环:for each 循环,没有下标,便于直接输出,但是取不到下标
int[] arrays = {1,2,3,4,5}; for (int array : arrays){} // 直接输入array.for 自动生成
反转数组 (难点,不是很懂)
修饰符 数据类型 反转操作符 传参(数组元素) public static int[] reverse (int[] arrays); { int [] result = new int[arrays.length]; for (int i=0,j=result.length-1; i<arrays.length;i++;j--) { result [j] = arrays[i]; } return result; }
定义二维数组
int[][] array = {{1,2},{3,4},......}; array[0]--->{1,2} / array[1]--->{3,4} array[0][0]--->{1} / array[1][1]--->{4}
打印二维数组
//①两个for 循环 ②注意区分坐标 for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++) Syestem.out.println(array[i][j]); }
1.Arrays类 Arrays.sort(a) //数组升序排序 Arrays.fill( ) //数组赋值 Arrays.equals() //数组元素是否相等 Arrays.binarySearch() //将排好序的数组进行二分法查找 ******************************************************** 冒泡排序---->时间复杂度:0(n2) 双层排序:外层.冒泡轮次 内层.依次比较(判断两个数的大小,第一个数比第二个大,则交换位置) 2.static 可定义类,方便后面直接使用
解决数组中大多数默认值为0/ 数组中的同一个元素的情况(就是没有意义的数据),用稀疏数组进行保存