理解数组:1维与2维数组的声明、初始化与排序

需积分: 13 0 下载量 136 浏览量 更新于2024-08-05 收藏 4KB MD 举报
"数组是编程语言中基础的数据结构,尤其在Java中,分为1维数组和2维数组。本文主要介绍了1维数组的概念、声明、初始化、排序以及扩容的方法,并通过示例代码帮助新手理解这些概念。同时,还简要提到了2维数组,即多行多列的数据存储方式。" 在Java中,数组是一种非常重要的数据结构,它允许程序员存储一组相同类型的元素。数组分为1维数组和2维数组,本篇主要关注1维数组。 1. **1维数组**: - **概念**:1维数组可以看作是一个线性的容器,用于存储多个同类型的数据,每个数据被称为元素,通过下标或索引进行访问,下标从0开始。 - **声明**:声明1维数组的语法是`数据类型[] 数组名;`,例如`int[] numbers;`声明了一个整型数组。 - **初始化**:数组初始化分为静态初始化和动态初始化。静态初始化时,程序员提供数据,长度自动分配;动态初始化时,程序员指定长度,数据被赋予默认值。例如: ```java // 静态初始化 int[] staticArray = {1, 2, 3, 4, 5}; // 动态初始化 int[] dynamicArray = new int[5]; ``` - **默认值**:不同类型的数组元素在初始化时会有默认值,如整型为0,浮点型为0.0,字符型为'\0',布尔型为false,引用类型为null。 - **数组长度**:数组一旦初始化,长度不可改变。 - **排序**:数组可以通过各种排序算法进行排序,例如简单的冒泡排序,其基本思想是比较相邻元素并交换位置,直到所有元素有序。以下是冒泡排序的示例代码: ```java int[] array = {45, 69, 32, 28, 52, 18}; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } // 遍历输出排序后的数组 for (int num : array) { System.out.println(num); } ``` 2. **数组扩容**:当数组空间不足时,需要创建一个新的数组并拷贝旧数组的数据。例如: ```java String[] oldArray = {"A", "B", "C"}; String[] newArray = new String[oldArray.length * 2]; for (int i = 0; i < oldArray.length; i++) { newArray[i] = oldArray[i]; } oldArray = newArray; ``` 对于**2维数组**,它是1维数组的扩展,可以理解为数组的数组,用于表示表格形式的数据。例如,一个2维数组可以表示一个矩阵,每行是一维数组,行与行之间组成二维数组。声明和初始化2维数组的语法如下: ```java int[][] twoDArray = new int[3][4]; // 3行4列的二维数组 ``` 2维数组的操作与1维数组类似,只是涉及的维度多了一层。 数组是编程的基础,理解和熟练运用数组对于学习更复杂的编程概念至关重要。对于新手来说,掌握数组的声明、初始化、操作和优化是编程学习的重要一步。