Custom ArrayList in Java

2025 年 3 月 26 日 | 阅读 5 分钟

在 Java 中,数组 (array) 和 ArrayList 是非常常用的数据结构。数组是 Java 提供的基本功能,而 ArrayListJava Collections 框架中的一个类。它属于 java.util 包。ArrayList 的局限性在于它只允许我们存储相同数据类型的元素。为了克服这个问题,我们可以自定义 ArrayList,从而存储不同类型的数据。在本节中,我们将学习Java 自定义 ArrayList以及如何在 Java 中实现自定义 ArrayList。在深入学习自定义 ArrayList 之前,让我们先回顾一下 Java 中的 ArrayList

Java ArrayList 类

Java 中,ArrayList 是 Java Collections 框架的一个类。它实现了 List<E>, Collection<E>, Iterable<E>, Cloneable, Serializable 和 RandomAccess 接口。它继承自 AbstractList<E> 类。它使用动态数组来存储元素。

我们可以使用以下语句创建 ArrayList 的实例

ArrayList 内部实际上是由 Java 中的数组支持的。ArrayList 中的重塑操作会降低性能,因为它涉及创建一个新数组并将旧数组的内容复制到新数组中。它调用了原生实现的 System.arraycopy(sec, srcPos, dest, destPos, length) 方法。

我们不能在 ArrayList 中存储原始类型。所以,它只存储对象。它会自动将原始类型转换为对象。例如,我们创建了一个 ArrayList 对象

JVM 会通过自动装箱将其转换为 Integer 对象。

Custom ArrayList in Java

包含多种数据类型(元素)的列表称为自定义 ArrayList。它是根据用户需求而定的。在自定义 ArrayList 中,数据由自定义内部类提供,该内部类是由各种原始对象数据类型组合而成的。

考虑一种情况,如果我们想输入产品详情。详情包括 pid、pname、pavailability、pprice、prating。通常,要在 ArrayList 中输入这些属性,我们需要为每个属性创建一个单独的 ArrayList,如下所示:

上述过程非常冗长,并且需要大量时间来输入元素。它使用单独的 ArrayList 来存储每个属性。为了解决这个问题,我们使用自定义 ArrayList。它可以在一个 ArrayList 中存储多种数据类型。例如,考虑下图:

Custom ArrayList in Java

在上图中,我们创建了一个 ArrayList。在 ArrayList 的所有索引中,我们存储了不同的数据,如 accno、name 和 interest。

Java 中自定义 ArrayList 的实现

要实现 Java 中的自定义 ArrayList,请按照以下步骤操作:

  • 创建 ArrayList 类的对象。
  • 将数据类型指定为类数据。
  • 定义一个类。
  • 创建一个构造函数,并在其中放入所需的实体。
  • 将这些实体链接到全局变量。
  • 从 ArrayList 接收的数据是存储多个数据的类的类型。

让我们遵循以上步骤来实现自定义 ArrayList。

自定义 ArrayList 示例

CustomArrayListExample.java

输出

Custom ArrayList in Java