java - 将 ArrayList 作为参数传递

标签 java arrays arraylist

首先我要说的是,我无法在此处放置任何代码,因为我的笔记本电脑上的互联网无法正常工作,所以我通过手机发布了此代码。好的,问题是说我有两个类(class):第一类和第二类。类一有一个 ArrayList 作为其属性之一,它调用类二的 void 方法并将该 ArrayList 作为参数传递。现在该方法初始化另一个 ArrayList 并使其等于我传递的参数并对新的 ArrayList 进行更改。有趣的是,即使是作为参数传递的原始 ArrayList 也在发生变化。可能的原因是什么?

最佳答案

问题是,当您使用 = 使新 ArrayList 成为原始数组的副本时,您只是在创建对同一 ArrayList 的新引用。将其视为指向同一对象的两个变量。

检查一下,它可能会帮助您了解正在发生的事情:Is Java "pass-by-reference" or "pass-by-value"?

为了解决您的问题,您需要使用“new”关键字创建一个新的 ArrayList,然后添加所有对象,或者使用 clone() 方法。

关于java - 将 ArrayList 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504141/

相关文章:

java - EditText 始终返回 Null - Java NullPointerException

java - 获取原始 HTML/向 WebView 页面添加 Javascript

Java - 将字符串数组修改为ArrayList<String>

c - 初学者从结构数组中删除第一个元素 (C)

java - 如何在 Java 中使用数组列表?

java - 如何使用 HashMap 获取不重复的列表字符串

java - Kryo 序列化库 : is it used in production?

java - eclipse Maven 错误 : Archive for required library in project cannot be read or is not a valid ZIP file

c++ - 每次arduino启动时如何防止颜色数组成为相同的随机数组

java - 在二维数组中搜索 O(n) 未排序的行