用Java构建不规则数组:从入门到精通

2024-01-28 12:54:36 浏览数 (1)

哈喽,各位小伙伴们,你们好呀,我是喵手。

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在Java程序开发中,数组是一个非常重要的数据类型。数组可以存储一组相同类型的数据,可以大大简化程序的开发过程。但是在某些情况下,我们需要使用不规则数组,也称为多维数组。本文将介绍如何使用Java SE构建不规则数组,并且将重点讲解如何创建和操作不规则数组。

摘要

  本文将通过源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例等方面进行详细介绍,帮助读者更好地理解和掌握Java SE构建不规则数组的知识。

正文

简介

  不规则数组,也称为多维数组,是指包含不同长度的数组。在Java中,我们可以使用数组的数组来构建不规则数组。不规则数组的长度可以是可变的,并且可以轻松地扩展或收缩,这是相对于传统数组的一个优点。

源代码解析

在Java中,我们可以使用数组的数组来构建不规则数组。下面是一个使用不规则数组的例子:

代码语言:java复制
public class IrregularArray {
    public static void main(String[] args) {
        int[][] arr = new int[3][];
        arr[0] = new int[]{1, 2};
        arr[1] = new int[]{3, 4, 5};
        arr[2] = new int[]{6, 7, 8, 9};
        for (int i = 0; i < arr.length; i  ) {
            for (int j = 0; j < arr[i].length; j  ) {
                System.out.print(arr[i][j]   " ");
            }
            System.out.println();
        }
    }
}

  在上述代码中,我们首先声明了一个大小为3的二维数组arr。然后我们使用arr的数组来构建不规则数组。我们将第一个数组赋值为[1, 2],第二个数组赋值为[3, 4, 5],第三个数组赋值为[6, 7, 8, 9]。最后,我们使用for循环遍历不规则数组,并打印每个元素的值。

代码分析:

  该代码定义了一个名为IrregularArray的类,在该类中定义了一个静态方法main,该方法接收一个字符串数组参数args。在main方法中,首先定义了一个二维数组arr,其中第一维的长度为3,但第二维的长度是不定的。然后,使用new关键字为第二维分别创建了长度为2、3和4的三个一维数组,将它们赋值给arr数组的三个元素。接下来,使用嵌套的for循环遍历arr数组中的每个元素,打印出其值。最后,程序结束。

输出结果为:

代码语言:java复制
    1 2 
    3 4 5 
    6 7 8 9 

应用场景案例

不规则数组主要应用于以下几个场景:

  1. 存储数据长度不同的数组。
  2. 存储数据结构中的树状结构。
  3. 存储图像中的像素矩阵。
  4. 存储游戏中的地图数据。

优缺点分析

不规则数组的优点包括:

  1. 可以存储不同长度的数组,灵活性更高。
  2. 可以轻松扩展或收缩,适用于动态变化的数据。

不规则数组的缺点包括:

  1. 数组长度不易确定,可能会导致内存浪费或不足。
  2. 不规则数组的操作较复杂,需要更多的代码实现。

类代码方法介绍

创建不规则数组

我们可以使用数组的数组来创建不规则数组,如下所示:

代码语言:java复制
int[][] arr = new int[3][];
arr[0] = new int[]{1, 2};
arr[1] = new int[]{3, 4, 5};
arr[2] = new int[]{6, 7, 8, 9};

  在上述代码中,我们声明了一个大小为3的二维数组arr,然后使用arr的数组来构建不规则数组。需要注意的是,我们只声明了arr的第一维的长度,第二维的长度是动态的,因此每个元素可以有不同的长度。

代码分析:

  该代码声明了一个二维int数组arr,它具有3个一维数组。

  • 第一个一维数组具有2个元素,值为1和2。
  • 第二个一维数组具有3个元素,值为3、4和5。
  • 第三个一维数组具有4个元素,值为6、7、8和9。

因为不是所有的一维数组都有相同数量的元素,这种类型的数组被称为“不规则数组”。

访问不规则数组

  我们可以使用for循环遍历不规则数组,并通过下标访问元素,如下所示:

代码语言:java复制
for (int i = 0; i < arr.length; i  ) {
    for (int j = 0; j < arr[i].length; j  ) {
        System.out.print(arr[i][j]   " ");
    }
    System.out.println();
}

  在上述代码中,我们使用for循环遍历不规则数组,并使用arr[i][j]访问每个元素的值。

代码分析:

  以上代码是一个双重循环,用于遍历一个二维数组arr并输出它的元素。第一个for循环依次遍历二维数组的每一行,第二个for循环依次遍历当前行的每一个元素,并将每个元素输出到终端。在每一行的元素输出完毕之后,进行换行操作,以便使输出结果更加美观易读。

修改不规则数组

我们可以通过下标修改不规则数组中的元素,如下所示:

代码语言:java复制
arr[0][0] = 10;
arr[1][1] = 20;
arr[2][2] = 30;

  在上述代码中,我们通过下标修改了不规则数组中的元素。

代码分析:

  这是一个二维数组的赋值操作。代码中给二维数组的第一个元素(下标为[0][0])赋值为10,第二个元素(下标为[1][1])赋值为20,第三个元素(下标为[2][2])赋值为30。这样,这个二维数组的对角线上三个元素的值分别为10、20和30。其他元素没有被赋值,因此它们将保留默认值(通常为0或null)。

测试用例

  以下是一个简单的测试用例,可以测试不规则数组的创建、访问和修改功能:

测试代码演示

代码语言:java复制
package com.example.javase.se.array;

/**
 * @Author ms
 * @Date 2023-11-16 18:16
 */
public class IrregularArrayTest {

    public static void main(String[] args) {
        int[][] arr = new int[3][];
        arr[0] = new int[]{1, 2};
        arr[1] = new int[]{3, 4, 5};
        arr[2] = new int[]{6, 7, 8, 9};
        for (int i = 0; i < arr.length; i  ) {
            for (int j = 0; j < arr[i].length; j  ) {
                System.out.print(arr[i][j]   " ");
            }
            System.out.println();
        }
        arr[0][0] = 10;
        arr[1][1] = 20;
        arr[2][2] = 30;
        System.out.println("修改后的数组:");
        for (int i = 0; i < arr.length; i  ) {
            for (int j = 0; j < arr[i].length; j  ) {
                System.out.print(arr[i][j]   " ");
            }
            System.out.println();
        }
    }
}

预期运行结果为:

代码语言:java复制
1 2 
3 4 5 
6 7 8 9 
修改后的数组:
10 2 
3 20 5 
6 7 30 9 

测试结果

  根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

测试代码分析

  根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。

  这是一个Java程序,主要演示了如何定义和使用不规则数组(irregular array)。

  在程序中,定义了一个长度为3的二维数组arr,其中第一维长度为3,第二维未定义。接着在程序中通过new关键字为不规则数组的每一行分配了不同的长度。

  然后,程序使用了两个循环来遍历不规则数组arr,并输出其中的元素。

  接着,程序又通过修改不规则数组中的某些元素,证明了不规则数组是可以被修改的。

  最后,程序再次遍历不规则数组,并输出修改后的元素。

  需要注意的是,在不规则数组中,每一行的长度可以不同,因此不能使用arr.length来获取二维数组的长度,需要使用arr[i].length来获取每一行的长度。

全文小结

  在本文中,我们介绍了如何使用Java SE构建不规则数组,并且重点讲解了如何创建和操作不规则数组。我们还介绍了不规则数组的应用场景、优缺点分析和类代码方法介绍。最后,我们提供了一个测试用例,帮助读者更好地理解和掌握Java SE构建不规则数组的知识。

总结

  在Java程序开发中,不规则数组是一个非常重要的数据类型,可以存储不同长度的数组,灵活性更高。通过本文的介绍,读者可以更好地掌握Java SE构建不规则数组的知识,并且可以灵活应用到实际开发中。

... ...

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

我正在参与我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

0 人点赞