How to Pass ArrayList Object as Function Argument in Java?

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

Java 的 ArrayList 类本质上是一个可变大小的数组,这意味着它的大小可以根据我们添加或删除的条目动态改变。它位于 java.util 包中。下面的语法可以轻松地将 ArrayList 作为参数传递给函数。

使用 Java,您可以使用集合框架的 Java ArrayList 类将元素存储在动态数组中。它类似于 数组。然而,数组列表的大小没有限制。任何时候我们想添加或删除元素都可以。虽然它可能比普通数组慢,但这使得它比传统数组更灵活。

示例

在上面的代码中,我们首先创建了一个名为“arr_list”的 ArrayList 对象,然后将其传递给一个名为 modifyList 的函数。在主 函数中,原始列表将反映我们对其所做的修改(即,我们添加的值)。因为 Java 是一个纯粹的按值传递语言,所以会发生这种情况,因为对象引用是按值传递的。

实施

文件名: PassArraylist.java

输出

 
The ArrayList after insertions is: [20, 40, 60]
The ArrayList after modifications is: [20, 40, 60, 80, 100]   

Java 如何使用按值传递?

在此特定实例中,我们假设在主函数中创建的 ArrayList 对象指向地址 1000。我们说 Java 中按值传递 对象引用是因为当我们把这个对象传递给 modifyList 函数时,地址 1000 被传递给它,并且对象“parameterList”也开始指向与“list”相同的内存位置。之后,当我们修改“parameterList”时,“list”也发生了同样的改变。这个概念与我们在 C++ 中将指针 变量作为参数传递非常相似。

示例

当我们上面的代码中的列表传递给按值调用方法时,“parameters”开始引用内存位置 1000。但是,当我们在函数中创建了一个新的 ArrayList 实例并将其设置为指向它时,“parameterList”开始导航到一个新的内存位置(假设为 2000)。内存位置 1000 的 ArrayList 将不再受该函数内所做的修改的影响。因此,“list”在主函数中保持不变。

实施

文件名: CallbyValueArraylist.java

输出

 
The ArrayList after insertions is: [20, 40, 60]
The New ArrayList inside the function is given by: [80, 100, 120, 140]
The ArrayList after the function call is: [20, 40, 60]