动力节点老杜Java基础入门学习教程分享——数组
### 动力节点老杜Java基础入门学习教程分享——数组 #### 数组概要 数组是一种重要的数据结构,被广泛应用于各种编程语言中,包括Java。数组是一种引用数据类型,用于存储固定数量的同类型元素。在内存中,数组是以连续的方式存储其元素的。 - **数组特点**: - 数组是一组数据的集合。 - 数组作为一种引用类型,其元素可以是基本类型,也可以是引用类型,但同一数组内的元素必须是同一种类型。 - 数组对象具有一个成员属性 `length`,该属性表示数组的长度。 - 数组的长度一旦确定,在创建之后就无法改变。 - 数组元素可以通过下标来访问,下标从0开始计数。 #### 一维数组的声明和使用 - **声明格式**: - `数组元素的类型[] 变量名称;` - `数组元素的类型 变量名称[];` - 第一种格式更为常见。 - 示例:`int[] numbers;` 或 `Student[] students;` - **创建方式**: - 使用 `new` 操作符创建数组:`new 数组元素的数据类型[数组元素的个数];` - 示例:`int[] nums = new int[5];` - 直接初始化数组:`数组元素的类型[] 变量名称 = {数组元素1, 数组元素2, ...};` - 示例:`int[] nums = {1, 2, 3, 4, 5};` #### 二维数组的声明和使用 - **声明格式**: - `数组元素的数据类型[][] 变量名;` - `数组元素的数据类型 变量名[][];` - 示例:`int[][] matrix;` - **创建方式**: - 直接使用 `new` 关键字创建:`int[][] data = new int[2][3];` - 从高维开始逐维创建:`int[][] data = new int[2][]; data[0] = new int[3]; data[1] = new int[4];` - 使用初始化语句块创建:`int[][] data = {{1, 2, 3}, {4, 5, 6, 7}};` #### 数组的排序 - **冒泡排序**:通过重复地遍历数组并比较相邻的元素来工作。如果一对相邻元素的顺序错误(即,第一个元素大于第二个元素),则交换它们。每次遍历都会把当前未排序的最大元素“冒泡”到最后。 - 示例代码: ```java void bubbleSort(int[] arr) { boolean swapped; for (int i = 0; i < arr.length - 1; i++) { swapped = false; for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 交换 arr[j] 和 arr[j + 1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } // 如果这一轮没有发生交换,则数组已经有序 if (!swapped) break; } } ``` - **选择排序**:选择排序的工作原理是遍历数组,找出最小(或最大)元素并将其放置在正确的位置上。每一轮遍历都会找到剩余元素中的最小值,并将其放置在未排序部分的起始位置。 - 示例代码: ```java void selectionSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIndex]) minIndex = j; } // 交换 arr[i] 和 arr[minIndex] int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } ``` #### 数组的查找 - **二分查找**:适用于已排序的数组。该算法通过将查找区间不断减半来寻找目标值。 - 示例代码: ```java int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) return mid; else if (arr[mid] < target) left = mid + 1; else right = mid - 1; } return -1; // 未找到目标值 } ``` #### Arrays工具类 - **Arrays.sort()**:用于排序数组。 - 示例代码: ```java int[] nums = {5, 3, 2, 4, 1}; Arrays.sort(nums); ``` - **Arrays.fill()**:用于填充数组。 - 示例代码: ```java int[] nums = new int[5]; Arrays.fill(nums, 10); // 将所有元素设置为10 ``` - **Arrays.binarySearch()**:实现二分查找算法。 - 示例代码: ```java int[] sortedNums = {1, 3, 5, 7, 9}; int index = Arrays.binarySearch(sortedNums, 5); // 查找值5的索引 ``` 通过以上的学习,我们不仅了解了数组的基本概念,还掌握了如何在Java中声明、创建和使用数组,以及如何对其进行排序和查找等高级操作。这些技能对于进一步学习Java编程是非常有帮助的。


































剩余21页未读,继续阅读


- 粉丝: 42
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- BIM模型技术在建筑施工企业应用探讨.ppt
- 2020安全生产责任制考核记录.doc
- 半桥代做半桥plc大学设计方案唐山代做半桥单片机大学设计方案文库.doc
- 南宁XX演艺培训学校策划书.doc
- 环境工程项目管理课程教学改革的实践与探索.docx
- 中外合资企业劳动合同.doc
- 第5章建筑设备安装识图与施工暖通识图.ppt
- 系列EEPROM的应用.doc
- 大数据在社保档案工作中的运用.docx
- 办公室管理制度涉外事务管理表格.docx
- 地区综合数据网络--网络设备及管理系统技术规范书.doc
- 基于深度学习的小学数学说理课堂实践探究-(5).doc
- 工程量清单计算实例.doc
- 《工程造价的确定与控制》试题.doc
- 工程现场使用钢筋材料管理细则.docx
- 拆除工程子目消耗量对比表.doc


