1. 什么是数组数组Array是编程中最基础、最常用的数据结构之一。它是一组相同类型元素的集合这些元素在内存中连续存储并通过索引Index来访问。2. 数组的核心特性固定大小大多数编程语言中数组在创建时就确定了长度无法动态改变。连续内存元素在内存中按顺序存放这使得通过索引访问元素的速度极快时间复杂度 O(1)。同质元素数组中的所有元素必须是相同的数据类型如全部是整数、全部是字符串等。零基索引大多数编程语言如 Java、C#、Python的数组索引从 0 开始。3. 数组的基本操作3.1 声明与初始化不同编程语言的数组声明方式略有不同// Java int[] numbers new int[5]; // 声明长度为5的整型数组 int[] scores {90, 85, 95, 88, 92}; // 声明并初始化# Python使用列表Python 原生没有严格数组 numbers [1, 2, 3, 4, 5] # 或使用 array 模块 import array arr array.array(i, [1, 2, 3, 4, 5])3.2 访问与修改// 访问元素 int first numbers[0]; // 获取第一个元素 // 修改元素 numbers[0] 100; // 将第一个元素改为1003.3 遍历数组// 使用 for 循环 for (int i 0; i numbers.length; i) { System.out.println(numbers[i]); } // 使用增强 for 循环for-each for (int num : numbers) { System.out.println(num); }4. 多维数组数组可以嵌套形成多维数组最常见的是二维数组矩阵// Java 二维数组 int[][] matrix new int[3][4]; // 3行4列的矩阵 matrix[0][0] 1; // 访问第一行第一列 // 初始化二维数组 int[][] grid { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };5. 数组的优缺点优点访问速度快通过索引直接访问时间复杂度 O(1)内存效率高连续存储没有额外的指针开销缓存友好连续内存布局有利于 CPU 缓存预取缺点固定大小创建后难以调整容量插入/删除慢在中间插入或删除元素需要移动后续元素内存浪费如果预先分配过大空间会造成浪费6. 数组的常见应用场景存储固定大小的数据集合如一周的天数、月份名称实现其他数据结构栈、队列、哈希表的基础矩阵运算图像处理、科学计算缓存数据需要快速随机访问的场景7. 数组 vs 链表特性数组链表内存布局连续分散访问时间O(1)O(n)插入/删除O(n)O(1)已知位置大小调整困难容易内存开销小大需要存储指针8. 实战示例查找数组中的最大值public class ArrayExample { public static int findMax(int[] arr) { if (arr null || arr.length 0) { throw new IllegalArgumentException(数组不能为空); } int max arr[0]; for (int i 1; i arr.length; i) { if (arr[i] max) { max arr[i]; } } return max; } public static void main(String[] args) { int[] numbers {3, 7, 2, 9, 1, 5}; System.out.println(最大值: findMax(numbers)); // 输出: 9 } }9. 总结数组是编程的基石理解它的特性和限制对于编写高效代码至关重要。虽然现代编程语言提供了更高级的集合类如 ArrayList、List但数组仍然是底层实现和性能敏感场景的首选。掌握数组后你可以更好地理解内存管理的基本原理算法的时间复杂度分析其他数据结构如字符串、矩阵的实现系统级编程和优化技巧