Java 程序设计基础(第3章)|数组
前面我们学习了变量、数据类型、运算符与程序控制语句,本章重点学习Java中数组相关知识。数组是存储相同类型数据的核心容器,分为一维数组、二维数组,同时结合Arrays工具类进行数据处理,搭配实战案例讲解,适合课堂复习、课后练习与期末备考。
第一部分 数组基础概念
一、什么是数组
数组是用来存储一组相同类型数据的引用类型容器,用来解决多个同类型数据统一管理的问题。
• 数组长度一旦创建就无法修改
• 通过索引(下标)访问元素,下标从0开始
• 访问超出下标范围会抛出数组越界异常
第二部分 一维数组
一、一维数组定义与初始化
1. 动态初始化:只指定数组长度,系统自动分配默认初始值
// 定义长度为5的int类型一维数组
int[] arr = new int[5];
2. 静态初始化:创建数组时直接赋值,长度由元素个数决定
// 简写形式
int[] arr = {10,20,30,40,50};
// 完整写法
int[] arr = new int[]{10,20,30,40,50};
二、一维数组访问与遍历
通过数组名[下标]访问数组元素,使用循环结构完成数组遍历。
一维数组案例:求一维数组最大值及位置
public class OneArrayDemo {
public static void main(String[] args) {
int[] arr = {12,45,7,89,23};
int max = arr[0];
int index = 0;
// 遍历数组寻找最大值
for(int i=1;i<arr.length;i++){
if(arr[i]>max){
max = arr[i];
index = i;
}
}
System.out.println("数组最大值:"+max+",所在下标位置:"+index);
}
}
第三部分 二维数组
一、二维数组定义
二维数组可以理解为数组中嵌套数组,适合存储矩阵、表格类数据。
1. 固定行列长度初始化
// 创建3行2列的二维数组
int[][] arr = new int[3][2];
2. 静态初始化
int[][] matrix = {{1,2},{3,4},{5,6}};
二、二维数组遍历与案例
使用双层for循环遍历二维数组。
二维数组案例:求两个矩阵的乘积
public class TwoArrayDemo {
public static void main(String[] args) {
int[][] a = {{1,2},{3,4}};
int[][] b = {{5,6},{7,8}};
int[][] res = new int[2][2];
// 矩阵乘法运算
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
for(int k=0;k<2;k++){
res[i][j] += a[i][k] * b[k][j];
}
}
}
}
}
第四部分 Arrays工具类
java.util.Arrays是Java官方提供的数组工具类,包含大量静态方法,无需创建对象可直接调用,简化数组操作。
常用核心方法
1. Arrays.sort(数组):对数组进行升序排序
2. Arrays.toString(数组):将数组转为字符串,直接打印查看
3. Arrays.binarySearch(数组,目标值):二分查找指定元素
案例:对数组按中文名称排序
import java.util.Arrays;
import java.text.Collator;
import java.util.Locale;
public class ChineseSortDemo {
public static void main(String[] args) {
String[] names = {"张三","李四","王五"};
// 设置中文语言环境,按拼音排序
Collator collator = Collator.getInstance(Locale.CHINA);
Arrays.sort(names, collator);
System.out.println(Arrays.toString(names));
}
}
本节整体总结
1. 数组是存储相同类型数据的引用类型容器,下标从0开始,长度不可改变
2. 一维数组适合存储单列数据,二维数组适合存储矩阵、表格类数据
3. 数组初始化分为动态初始化、静态初始化,通过循环完成遍历操作
4. Arrays工具类可快速实现数组排序、打印、查找,简化代码开发
5. 掌握数组最值查找、矩阵运算、中文排序等经典案例,是数组学习核心
文末互动
数组是Java开发中高频使用的数据结构,一维、二维数组及Arrays工具类是考试、作业高频考点。代码练习中遇到数组越界、矩阵运算错误、排序异常等问题,欢迎评论区留言交流~
更多推荐


所有评论(0)