Java 中的数组类型2025年8月12日 | 阅读 7 分钟 数组是 Java 中的一种线性数据结构。它允许我们存储相同数据类型的多个值。它们在 Java 中用作对象。对于 int 或 char 等原始数据类型,原始值存储在内存位置。但如果数组包含对象,那么它不存储对象本身。相反,它保存指向这些对象存储位置的地址,而对象可以位于内存中的任何位置。 阅读更多 数组数据结构 数组类型数组可以根据其大小和维度进行分类。 ![]() 按大小分类1. 固定大小数组 固定大小数组是大小无法更改的数组。这些数组的缺点是,如果不知道数组大小而声明了一个较大尺寸的数组,并使用了较少数量的数组元素,则会导致内存浪费;或者,如果声明的数组尺寸较小,则可能空间不足以容纳所有元素。在这种情况下,不建议使用静态内存分配。 实施 2. 动态大小数组 在这些数组中,内存的分配和去分配大多是动态进行的。数组大小根据代码执行期间用户的需求而变化,因此程序员不必担心数组大小。元素的添加和删除可以根据需要进行。 实施 按维度分类1. 一维数组 (1D 数组) 一维数组可以想象成一个单行,元素按顺序存储,一个接一个。它只有一个维度,因此也称为单维数组。 声明:我们通过首先指定数组将保存的元素的数据类型,紧接着是空的方括号 [],然后是数组的名称来声明一维数组。 实例化 (内存分配):一旦声明了数组,下一步就是为其分配内存。这个过程称为实例化。我们通过使用 new 关键字,后跟数组的数据类型,然后是包含数组将能够存储的固定数量的元素(其大小)的方括号 [] 来完成此操作。 当数组被实例化时,它的元素会自动初始化为其默认值:数值类型为 0,布尔类型为 false,引用类型(对象)为 null。 初始化:我们可以使用其索引(从 0 开始)为单个元素赋值。 单条语句声明和初始化 访问元素:我们使用方括号内的索引来访问元素。 length 属性:Java 中的每个数组都有一个 length 属性(不是方法),该属性提供其大小。 一维 (1D) 数组 Java 程序 示例编译并运行输出 Elements of the array are: 40 50 60 70 80 90 解释 在上面的程序中,我们声明并初始化了一个名为 arr[] 的数组,并使用 length 属性查找数组的长度。for 循环逐个遍历数组并打印数组元素。 2. 多维数组 包含多个维度的数组称为多维数组。表格形式的数据可以存储在多维数组中。二维 (2D) 数组和三维 (3D) 数组是多维数组的示例。 二维数组 它通常被视为一个网格或表,包含行和列。在 Java 中,二维数组是数组的数组,其中主数组中的每个元素都是对另一个数组的引用。 声明:要声明二维数组,我们指定数组最终将包含的元素的数据类型,后跟一对方括号 [][],然后写下数组的名称。 或 我们可以通过单条语句声明和初始化二维数组,如下所示。 分配值 示例 二维数组表示 ![]() 请注意,Java 使用零基索引。这意味着 Java 中的数组索引从 0 开始。 另外请注意,在多维数组中,每行的大小可能不同。这意味着每行可能不包含相同数量的元素。 二维 (2D) 数组 Java 程序 示例编译并运行输出 1 2 3 4 5 6 7 8 9 解释 在上面的程序中,我们声明并初始化了一个 3x3 的矩阵。第一个 for 循环遍历行,第二个 for 循环遍历列。第一个打印语句在元素之间打印空格,第二个打印语句将光标移到下一行。 三维数组 它是二维数组的复杂形式。换句话说,它是二维数组的数组。 声明 或 或 我们可以通过单条语句声明和初始化三维数组,如下所示。 分配值 示例 三维数组表示 ![]() 三维 (3D) 数组 Java 程序 示例编译并运行输出 Elements of the 3D Array: 1 2 3 4 5 6 7 8 9 10 11 12 多维数组的大小我们可以通过将所有维度的尺寸相乘来计算数组的大小。这给出了可以存储在数组中的元素数量。例如,int[][][] num = new int[5][5][5]; 可以存储总共 125 个元素。 为什么要使用多维数组?多维数组在许多现实场景中都很有用,例如
结论Java 的数组是一种核心且高效的数据结构。它们非常适合存储所有元素类型相同的集合。从使用一维数组管理简单的线性列表,到使用多维数组构建复杂的。 使用多维数组存储表格状信息,甚至使用交错数组处理复杂的、不均匀的数据布局。Java 的数组系统始终提供快速的、基于索引的元素检索。 Java 数组类型 MCQs1. 在 Java 中,数组索引是__________,这意味着第一个元素位于索引 0。
答案:c) 解释:Java(与 C/C++ 一样)使用 0 作为数组的起始索引。 2. 当声明一个数组时,它的__________ 在创建后不能更改。
答案:c) 解释:Java 中的数组大小是固定的;一旦分配了内存,就不能直接调整它的大小。 3. 对于原始数据类型,如果没有在实例化期间提供显式值,数组元素默认会自动初始化为__________。
答案:c) 解释:数值原始类型(如 int、double、float)初始化为 0。(布尔类型为 false,引用类型为 null)。 4. Java 中的数组变量实际上是内存中数组对象的__________,而不是元素本身。
答案: d) 解释:在 Java 中,数组是对象,而保存对象的变量实际上存储的是指向堆上那些对象的引用(内存地址)。 5. 当一个数组包含对象时,它存储了指向这些对象在内存中位置的__________。
答案:c) 解释:对于引用类型的数组,数组元素本身包含指向实际对象的内存地址(引用),这些对象通常存储在堆上的其他位置。 下一个主题Java 8 中的 Group By |
在 Java 中,有多种方法可以计算电费。我们可以使用静态值、命令行参数、方法和函数、用户定义方法以及 do-while 和 for 循环来计算电费。让我们一一了解它们:使用静态方法在这种情况下...
5 分钟阅读
问题陈述:给定一个二进制矩阵(一个每个单元格仅包含数字 0 或 1 的网格),任务是确定从 0 单元格到 1 单元格所需的最小移动次数。...
7 分钟阅读
Java 提供了两个非常强大的库来处理 JSON 数据,即 JACKSON 和 Gson 库。我们经常需要将 JSON 响应转换为 map 以便轻松处理返回的 JSON 数据。我们可以轻松地将 JSON 数据转换为 map,因为 JSON 格式...
7 分钟阅读
在本节中,我们将学习如何在 Java 中将 char 数组转换为 String。有四种方法可以在 Java 中将 char 数组转换为 String:使用 String 类构造函数、使用 valueOf() 方法、使用 copyValueOf() 方法、使用 StringBuilder 类使用 String 类构造函数 String 类提供了一个解析...
阅读 3 分钟
?链表是 Java 中的一种基本数据结构,由通过指针连接的节点组成。每个节点包含数据和对列表中节点的引用。虽然链表在动态内存分配方面提供了灵活性,但至关重要的是...
阅读 6 分钟
Java 中的构造函数 Java 中的构造函数类似于方法,但有几处不同。构造函数与类名相同。构造函数没有返回类型。如果 Java 程序中尚未定义构造函数,Java 程序会自动创建一个...
阅读 4 分钟
字符串操作是编程中的常见任务,Java 提供了各种内置方法和技术来高效地执行此类操作。在本节中,我们将探讨如何使用 Java 反转字符串和反转其中的每个交替子字符串。反转字符串:要反转字符串...
5 分钟阅读
?添加两个日期是编程中的一项常见任务,尤其是在处理基于时间的计算时。在 Java 中,有几种方法可以将两个日期相加,具体取决于程序的特定要求。在本文中,我们将探讨一些用于...
阅读 6 分钟
队列数据结构使用 FIFO 规则,新条目在后面,同时从前面的位置删除项目。由于 LIFO 过程,每个元素从其顶端进入和离开堆栈。两个堆栈提供了一种创建队列的高效方法...
阅读 6 分钟
在传统的二叉树中,遍历需要递归或基于堆栈的方法来跟踪节点。然而,这些方法会引入额外的空间复杂度。线程二叉树通过 NULL 指针实现简化了遍历,该实现将节点与其紧邻的中序前驱或后继连接起来,而无需额外的内存...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India