Custom ArrayList in Java2025 年 3 月 26 日 | 阅读 5 分钟 在 Java 中,数组 (array) 和 ArrayList 是非常常用的数据结构。数组是 Java 提供的基本功能,而 ArrayList 是 Java 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 中存储多种数据类型。例如,考虑下图: ![]() 在上图中,我们创建了一个 ArrayList。在 ArrayList 的所有索引中,我们存储了不同的数据,如 accno、name 和 interest。 Java 中自定义 ArrayList 的实现要实现 Java 中的自定义 ArrayList,请按照以下步骤操作:
让我们遵循以上步骤来实现自定义 ArrayList。 自定义 ArrayList 示例CustomArrayListExample.java 输出 ![]() |
在 Java 中,static 关键字可以与变量、常量和函数一起使用。使用 static 关键字的主要目的是管理内存,以便我们可以高效地使用内存。在本节中,我们将讨论 Java 中的静态函数。静态函数 如果……
阅读 3 分钟
一组用于有效管理工作线程的组件的框架称为执行器框架。执行器 API 通过执行器将任务的执行与要执行的实际任务分离。执行器框架是一个实现...
阅读 8 分钟
Java 中的适配器设计模式是一种使两个具有不同接口的对象协同工作的方式。有时,我们希望使用某些对象,但它们的接口不兼容。在这种情况下,我们可以使用适配器模式。适配器模式充当...
阅读 4 分钟
对象类的 equals() 方法用于比较两个对象,该方法接受一个对象并将当前对象与该对象进行比较。如果这两个对象的引用相等,则方法返回 true;否则,则不返回。示例 整个以下 Employee 类...
阅读 2 分钟
? 有时,我们需要将数据表示为表格格式,尤其是在处理数据库时。在本节中,我们将创建 Java 程序,将数据以表格格式打印到控制台。有许多方法可以打印...
阅读 4 分钟
在本节中,我们将讨论 Java 中的标记接口、其用途、内置(Serializable、Cloneable 和 Remote 接口)以及带有示例的自定义标记接口。什么是标记接口?一个不包含方法、字段和常量的接口称为标记接口。换句话说,...
5 分钟阅读
在 Java 中,阿姆斯特朗数、素数和回文数等数字程序经常被面试官问到。与其他数字程序不同,经济型数字并不经常被面试官问到。经济型数字是指其素数分解中的数字数量...
阅读 3 分钟
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常遇到的问题。通过解决问题,人们希望检查面试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将解决...
阅读 6 分钟
问题描述 想象一下,您正在从一排相互连接的果树中采摘水果。每棵树结一种特定种类的水果。您有两篮,每篮可以无限容量地携带一种水果。您从任何...
阅读 6 分钟
在当今数据驱动的环境中,解读和理解人类语言的能力至关重要。一门名为“自然语言处理”(NLP)的研究领域,结合了语言学和计算机科学,旨在开发能够识别、解析和生成人类语言的计算机程序。对于NLP工作,Java,一种灵活且流行的...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India