六,数组的介绍
2026/6/17 20:20:03 网站建设 项目流程

Java数组全套精炼知识点(完全匹配PDF讲义,易懂精简)
一、一维数组基础

  1. 概念
    批量存相同类型数据,统一批量操作。
  2. 使用三步
  3. 声明: 数据类型[] 数组名; (推荐写法)
  4. 分配空间: 数组名 = new 数据类型[长度];
  5. 存取使用
  • 存: 数组名[下标] = 值;
  • 取: 数组名[下标]
  1. 下标规则
  • 下标范围: 0 ~ 数组名.length - 1
  • 下标越界:下标超出范围,运行抛 ArrayIndexOutOfBoundsException
  1. 遍历数组
    java

for(int i=0; i<数组名.length; i++){
//操作数组名[i]
}
5. 默认初始值

  • int/整数:0
  • 小数(double/float):0.0
  • boolean:false
  • char:空字符 \u0000
  • 引用类型(对象):null
  1. 三种定义写法
  2. 声明+分配空间: int[] a = new int[5];
  3. new大括号初始化: int[] a = new int[]{1,2,3}; 方括号不能写长度
  4. 简写初始化: int[] a = {1,2,3};
    ⚠️ 简写必须声明和赋值写一行,拆分报错

java

int[] a;
a = {1,2}; // 语法错误

二、数组内存(难点)
1.数组元素内存连续存放
2.数组变量存堆内存首地址,不是数组本身
3.寻址公式:首地址 + 下标 × 单个元素字节数
4.下标从0:简化计算,提升寻址效率
5.赋值区别

  • 基本类型赋值:传递真实数值,互不影响
  • 数组赋值:传递内存地址,两个变量共用同一个数组
    三、数组扩容
    扩容思路
  1. 创建长度更大新数组(通常2倍)
  2. 把旧数组全部元素复制进新数组
  3. 原数组变量指向新数组地址
    三种实现方式
  4. 手动for循环拷贝
    java

int[] a = {1,7,4,3};
int[] b = new int[a.length*2];
for(int i=0;i<a.length;i++) b[i]=a[i];
a = b;
2. System.arraycopy(原数组,原起始下标,新数组,新起始下标,拷贝个数)
3. Arrays.copyOf(原数组,新长度) (最简)

java

int[] b = Arrays.copyOf(a,a.length*2);
a = b;
四、可变长参数

  1. 作用:方法接收数量不固定的同类型实参
  2. 语法: 返回值 方法名(类型…变量名)
  3. 底层:自动封装为对应一维数组,方法内直接当数组使用

java

public static void fun(int… a){
for(int i=0;i<a.length;i++) System.out.println(a[i]);
}

  1. 硬性规则:一个方法只能1个可变参数,必须放在形参最后一位
    五、数组排序(面试重点)
  2. 冒泡排序

相邻两两比较,大值逐步后移
外层循环控制轮次 length-1 ;内层每轮减少一次比较

java

for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];a[j]=a[j+1];a[j+1]=temp;
}
}
}
2. 选择排序
固定当前下标,和后面全部元素对比,最小值逐步前移

java

for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
int temp=a[i];a[i]=a[j];a[j]=temp;
}
}
}
3. 工具快速排序
java.util.Arrays.sort(数组名); 底层快排,开发首选
六、二维数组

  1. 本质
    一维数组里面每一个元素,又是一个一维数组
  2. 基础语法
    声明: int[][] a;
    分配空间: a = new int[行数][列数];
    取值: a[行下标][列下标] ,行列下标都从0开始
  3. 获取长度
  • 行数: a.length
  • 指定行的列数: a[行标].length
  1. 三种初始化写法
  2. int[][] a = new int[3][4];
  3. int[][] a = new int[][]{{1,2},{3,4}};
  4. int[][] a = {{1,2},{3,4}}; 声明赋值必须同行
  5. 不规则二维数组
    每行长度不一样;定义只能指定行数,不能先指定列

java

int[][] a = new int[3][];
a[0] = new int[2];
a[1] = new int[5];
简写: int[][] a = {{1},{1,2,3},{5,6}};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询