当前位置:首页 > 后端开发 > 正文

Java数组如何表示?

Java中数组的表示方式:使用方括号声明(如 int[] arrint arr[]),通过 new关键字初始化(如 new int[5]),索引从0开始访问元素(如 arr[0]),数组长度固定,存储相同类型元素。

在Java中,数组是一种基础数据结构,用于存储固定大小的同类型元素,它通过连续内存分配实现高效访问,是处理批量数据的核心工具,以下是详细解析:


一维数组的表示

声明数组

// 语法:数据类型[] 数组名;
int[] numbers;      // 推荐写法(清晰表明数组类型)
String names[];     // 兼容C风格的写法(不推荐)

创建数组

使用 new 关键字分配内存(数组长度固定):

numbers = new int[5];  // 创建长度为5的int数组(默认值:0)
names = new String[3]; // 创建长度为3的String数组(默认值:null)

初始化数组

静态初始化(声明时直接赋值):

int[] primes = {2, 3, 5, 7, 11}; 
String[] colors = {"Red", "Green", "Blue"};

动态初始化

Java数组如何表示?  第1张

int[] scores = new int[3]; 
scores[0] = 90;  // 索引从0开始
scores[1] = 85;
scores[2] = 78;

多维数组的表示

二维数组(矩阵)

// 声明与创建
int[][] matrix = new int[3][3]; // 3行3列
// 静态初始化
int[][] grid = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
// 访问元素
System.out.println(grid[1][2]); // 输出:6(第2行第3列)

不规则数组

每行长度可不同:

int[][] jaggedArray = new int[2][]; 
jaggedArray[0] = new int[]{1, 2};      // 第1行2个元素
jaggedArray[1] = new int[]{3, 4, 5};   // 第2行3个元素

关键特性与操作

  1. 长度获取
    使用 length 属性(非方法):

    int len = primes.length; // 返回5
  2. 遍历数组

    // for循环
    for (int i = 0; i < primes.length; i++) {
        System.out.println(primes[i]);
    }
    // 增强for循环(只读)
    for (String color : colors) {
        System.out.println(color);
    }
  3. 数组复制

    • System.arraycopy():高效复制
      int[] source = {1, 2, 3};
      int[] dest = new int[3];
      System.arraycopy(source, 0, dest, 0, source.length);
    • Arrays.copyOf():简化操作
      int[] copy = Arrays.copyOf(source, source.length);
  4. 常见异常

    • ArrayIndexOutOfBoundsException:索引越界(如访问 arr[5] 但数组长度为4)
    • NullPointerException:未初始化数组直接访问

注意事项

  1. 定长限制
    数组创建后长度不可变,需动态扩容时建议用 ArrayList
  2. 默认值规则
    • 数值类型(int, double等):0
    • 布尔类型(boolean):false
    • 引用类型(String, 对象等):null
  3. 内存效率
    数组内存连续,访问时间复杂度为 O(1),适合高频随机访问场景。

工具类推荐

java.util.Arrays 提供常用操作:

import java.util.Arrays;
// 排序
Arrays.sort(primes); 
// 二分查找(需先排序)
int index = Arrays.binarySearch(primes, 5); 
// 转换为字符串
System.out.println(Arrays.toString(primes)); // 输出:[2, 3, 5, 7, 11]

Java数组通过索引高效访问元素,是处理有序数据的基石。

  • 一维数组数据类型[] 变量名 = {值1, 值2, ...};
  • 多维数组数据类型[][] 变量名 = new int[行][列];
  • 核心操作:长度用 length,遍历用循环,工具类选 Arrays

引用说明:本文内容参考Oracle官方Java文档(Arrays in Java)及《Java核心技术·卷I》第10版,实践代码基于Java 17语法验证。

0