版权声明:欢迎转载 https://blog.csdn.net/qq_37875585/article/details/88078437
数组
-
数组:用于存储类型一致的一组数据
- 数组在内存中是连续存储的。
- 数组是连续数据存储结构, 用于简便管理一组数据。
- 也就是用一个变量代表一组数据
- 在软件中数据类型相同的相关数据采用数组存储
- 很多数据结构的底层都是数组
- 字符串底层是数组
- 集合底层是数组
-
数组的初始化
-
使用长度初始化数组
- 原理:
- 案例代码:
public static void main(String[] args) { /* * 数组的基本语法 * 使用长度声明数组 */ int[] arr = new int[10]; int arr2[] = new int[10];//不推荐 System.out.println(arr[1]);//0 System.out.println(arr[5]);//0 System.out.println(arr[8]);//0 System.out.println(arr[9]);//0 //System.out.println(arr[10]);//越界"异常" char[] chs = new char[5]; //编号为0的字符是控制字符,输出没结果 System.out.println(chs[1]); System.out.println((int)chs[1]); }
- 原理:
-
使用元素初始化数组
- 原理:
- 案例:
public static void main(String[] args) { /* * 使用元素初始化数组 */ int[] arr = {2,3,5,7}; int[] arr2 = new int[] {2,3,5,7}; System.out.println(arr[1]);//3 System.out.println(arr2[1]);//3 int[] arr3; //arr3 = {2,3,4,5}; //编译错误 //{元素,元素} 只能用在声明变量并且同时初始化 arr3 = new int[] {3,4,5,6};//不能省略new int[] System.out.println(arr3[2]);//5 }
- 原理:
-
以上两种数组初始化差别:
- 当数组元素数量非常多,或者数组元素是未知的时候,应该采用 长度初始化数组。
- 当数组元素数量不多并且已经知道每个元素的值的时候,则应该采用元素初始化数组。
-
-
访问数组元素
- 使用数组下标读写数组元素
- 案例:
public static void main(String[] args) { /* * 修改数组中的值 * 读写方式:数组变量名[下标] 读写数组中元素 */ int[] arr = {2,3,5,7}; // 0 1 2 3 //获取数组的元素数据 int n = arr[1]; //n=3 System.out.println(n); //3 //修改数组中的元素数据 arr[1] = 8; n = arr[1];//n=8 System.out.println(n);//8 //直接读写 数组中元素数据 arr[2]++;//5->6 System.out.println(arr[2]);//6 }
-
length 属性
-
length 属性用于动态检查一个数组的长度
-
length 经常用于数组遍历算法
-
案例1:
public static void main(String[] args) { /* * 动态检查一个数组的长度 * * Java中数组创建以后,其长度不可更改 * length 属性只能读取不能更改。 */ int[] arr = {3,1,4,5}; int n = arr.length; //.length 属性可以获取数组的长度 System.out.println(n); //4 //.length 是只读属性,不能修改值 //arr.length = 9; //编译错误 /* * 数组长度的用途:遍历数组的每个元素 * 遍历:Iterate 的翻译,意义为:重复处理每个元素 */ //计算一个数组中所有元素数值的平均值 int[] arr2 = {2,1,5,7,2,4,9}; //length=7 // 0 1 2 3 4 5 6 //分析: i i++ <length int sum=0; for(int i=0; i<arr2.length; i++) { //i = 0 1 2 3 4 5 6 sum += arr2[i];//代表数组中每个元素 } double avg = (double)sum/arr2.length; System.out.println(avg); //利用数组遍历算法计算数组元素的平均值 }
-
案例2:
- 原理:
- 代码:
public static void main(String[] args) { /* * 查找数组中最大值 */ int[] arr = {3,1,3,10,19,2,1,3}; int max = arr[0]; for(int i=1; i<arr.length; i++) { if(max<arr[i]) { max = arr[i]; } } System.out.println(max); }
- 原理:
-