一篇文章带你完全搞懂了解Java数组 - 基本概念、创建方式、应用场景和注意事项等

Java数组 - 基本概念、创建方式、应用场景和注意事项

基本概念:

​ Java 数组是一种用于存储相同类型的数据的数据结构。它是一个固定长度的容器,其中的元素按顺序存储,并可以通过索引访问。在 Java 中,数组是对象,具有特定的语法和功能。

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。数组中存储的数据类型可以是基本数据类型(如 int、char、boolean 等)或引用类型(如 String、自定义类等)。

知识要点:

  • **元素类型:**数组中存储的数据类型,可以是基本数据类型或引用类型。
  • **长度:**数组一旦创建,其长度是固定的,无法改变。
  • **索引:**数组中每个元素的位置,从0开始计数。
  • **初始化:**为数组分配内存并赋初值。

创建方式:

​ Java 创建数组的语法很简单。我们可以使用以下方式来声明和初始化数组:

// 1.声明和初始化数组
dataType[] arrayName = new dataType[length];

// 例子:
int[] numbers = new int[5]; // 声明并创建一个整型数组,长度为5
String[] names = new String[3]; // 声明并创建一个字符串数组,长度为3
int	[]	num=new int[]{1,2,3};//2.创建一个整型数组并初始化其元素直接填入元素1,2,3

应用场景:

  • 存储和处理大量相同类型的数据。
  • 遍历、搜索、排序和过滤数据。
  • 实现矩阵、图和其他数据结构。
  • 作为方法的参数和返回值。

需要注意的点:

  1. 数组的长度是固定的,一旦创建,无法改变。
  2. 数组索引从0开始,最大索引为长度减1。
  3. 访问数组元素时要确保索引在有效范围内,避免出现数组越界访问。
  4. 数组可以存储基本数据类型和引用类型,但数组本身是对象。
  5. 数组可以使用循环遍历、搜索、修改和操作其中的元素。

示例代码: 下面是一个简单的示例代码,展示了如何声明、初始化和使用一个整型数组:

public class ArrayExample {
    public static void main(String[] args) {
        // 声明并创建一个整型数组,长度为5
        int[] numbers = new int[5];

        // 给数组赋值
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;

        // 访问数组元素
        System.out.println(numbers[2]); // 输出 30

        // 遍历数组并打印每个元素
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }

        // 数组长度
        System.out.println("数组长度:" + numbers.length); // 输出 5

        // 越界访问
        // System.out.println(numbers[5]); // 越界访问,会抛出 ArrayIndexOutOfBoundsException 异常

        // 数据类型不匹配
        // numbers[0] = "hello"; // 报错,不能将字符串赋给整型数组

        // 创建引用类型的数组
        String[] names = new String[3];
        names[0] = "Alice";
        names[1] = "Bob";
        names[2] = "Charlie";

        // 多维数组
        int[][] matrix = { {1, 2, 3}, {4, 5, 6} };
        System.out.println(matrix[1][2]); // 输出 6
    }
}

从上面的代码中我们有以下几个需要注意的点:

  1. 数组的长度是固定的,一旦创建后,无法改变。
  2. 数组索引从0开始,最大索引为数组长度减1(数组.length-1)。访问数组元素时要确保索引在有效范围内,避免越界访问。
  3. 数组可以存储基本数据类型和引用类型,但数组本身是对象。需要使用合适的数据类型进行赋值。
  4. 访问数组元素时使用方括号[],并通过索引指定要访问的元素位置。
  5. 遍历数组可以使用循环结构,如for循环。
  6. 使用属性length获取数组的长度。
  7. 引用类型的数组可以存储不同类型的对象,如示例中的字符串数组。
  8. 多维数组是数组中包含其他数组的结构。例如示例中的二维数组matrix
  9. 注意处理可能出现的异常,如数组越界访问会抛出ArrayIndexOutOfBoundsException异常。

还有一个例子需要着重讲解一下,因为使用到数组一般就是为了处理业务逻辑,需要我们设计代码,进行算法设计等。

那么数组也可做为方法的参数和返回值,从下面的例子来带着掌握以下数组

import java.util.Arrays;

public class ArrayExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
// 访问数组元素
    System.out.println("第一个元素:" + numbers[0]); // 输出 1

    // 修改数组元素
    numbers[0] = 10;
    System.out.println("修改后的第一个元素:" + numbers[0]); // 输出 10

    // 数组长度
    System.out.println("数组长度:" + numbers.length); // 输出 5

    // 数组排序
    Arrays.sort(numbers);
    System.out.println("排序后的数组:" + Arrays.toString(numbers));

    // 数组作为方法返回值
    int[] reversed = reverseArray(numbers);
    System.out.println("反转后的数组:" + Arrays.toString(reversed));
}

    //接受int类型的数组做参数变量,然后返回int类型的数组
public static int[] reverseArray(int[] array) {
    int[] reversed = new int[array.length];
    for (int i = 0; i < array.length; i++) {
        reversed[i] = array[array.length - 1 - i];
    }
    return reversed;
}
}

这个例子演示了以下几个数组的注意点:

  1. 数组的访问:使用方括号[]和索引来访问数组元素。
  2. 数组的修改:可以直接赋值修改数组中的元素。
  3. 数组的长度:使用属性length获取数组的长度。
  4. 数组的排序:使用Arrays.sort()方法对数组进行排序。
  5. 数组作为方法返回值:创建一个新的数组,并将其作为方法的返回值。

**PS:**在上面的学习例子中,reverseArray()方法接受一个整型数组作为参数,创建一个新的数组reversed,通过反向遍历原始数组将元素逐个赋值给新数组。然后,在main()方法中调用reverseArray()方法,并将返回的反转数组存储在reversed变量中,最后打印出结果。
后面会发布进阶的ArraysList动态数组的内容。

结尾语:记录于2023年7月22号15时20分,以上仅为个人在菜鸟教程Java数组的学习过程中遇到的问题,还有记录的个人想法,有错误欢迎指出,感谢

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stevedash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值