第4节 数组
一、概述
数组是相同数据类型的多个数据的容器。这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)。
二、创建格式
格式1:数据类型[] 数组名称 = new 数据类型[数组长度];
//常用格式1:创建数组,并指定长度,不指定数组中的内容
//数据类型[] 数组名称 = new 数据类型[数组长度];
//数组长度通过int数据指定
int[] ages2 = new int[10];
格式2:数据类型[] 数组名称 = {数据1,数据2,数据3...};
//常用格式2:创建数组的同时,指定数组的内容
//数据类型[] 数组名称 = {数据1, 数据2...};
int[] ages = {10,11,12,13,14};
格式3:数据类型[] 数组名;
格式3属于只创建了数组引用名,并未在内存创建数组空间。
//不常用格式1:创建数组,不初始化
//数据类型[] 数组名;
int[] nums;
格式4:数据类型[] 数组名称 = new 数据类型[] {数据1, 数据2,...};
//不常用格式2:创建数组,并指定数组中的内容
//数据类型[] 数组名称 = new 数据类型[]{数据1,数据2..};
int[] ages = new int[] {11,12,13,14};
三、下标
可以理解为数组中内容的数字序号,从 0 开始 ,对于长度为 n 的数组,下标的范围是 0~n-1。 可以通过下标的方式访问数组中的每一个元素。 例如: 创建 int 类型数组 arr , 给数组 arr 的 5 下标赋值数据 , 然后打印:
四、获取数组长度
数组名称.length
//如何获取数组的长度:数组名称.length
for(int index=0; index<ages.length ;index++) {//index:0 1 2 3 4System.out.println(ages[index]);
}
五、数组常见问题
-
下标越界问题:数组越界异常
-
数组未赋值:空指针异常
六、几个简单的算法
6.1 寻找最大最小值
之前学过,笔记略
public class find_max_min {public static void main(String[] args) {int[] nums = {10, 22, 4, 56, 9, 78};//1、创建一个变量,用于存储遍历数组时发现的最大值int n = nums[0];//2、循环取出数组中的每一个元素for(int i=1; i< nums.length; i++) {//将数组中的每一个内容与n比较,若比n大,则将n的值更新n = n>nums[i]?n:nums[i];}System.out.println(n);}
}
6.2 冒泡排序
之前学过,笔记略
6.3 二分查找
之前学过,笔记略
七、多维数组
定义格式如下所示:
public class multi_D_array {/*** 多维数组** 创建格式:* 数据类型 数组名 = new 数据类型[长度]* int[][] arr = new int[10][]*/public static void main(String[] args) {int[][] nums = new int[10][];nums[0] = new int[] {1,2,3};System.out.println(nums[0]);}
}
第一个[]内必须给定长度,第二个里面可以不给,如果给定,表示内部每个一维数组长度都一致,如果不给,可以分别定义,长度可以不一样。