Java arraylist 清除或重新启动

标签 java arraylist

考虑以下代码:

import java.util.ArrayList;
public class Main{
    public static void main(String args[]){
        ArrayList<ArrayList<Integer>> test = new ArrayList<ArrayList<Integer>>();
        ArrayList<Integer> a = new ArrayList<Integer>();
        a.add(7);
        test.add(a);
        System.out.println(test);
        a.clear()
        System.out.println(test);
    }
}

测试的输出会不同(一个是[[7]],另一个是[[]]) 如果我们使用 a = new ArrayList() 而不是 a.clear(),结果会有所不同。我认为“测试”已经记录了“a”,所以我可以对“a”做任何事情而不改变“测试”。 任何人都可以告诉我当我使用 a.clear() 并纠正我的想法时会发生什么?谢谢。

最佳答案

I thought the "test" had already recorded the "a" so I can do anything about "a" without changing "test".

通过存储对 a 所保存的同一对象的引用来记录 a。当你这样做时

a.clear()

您正在同一对象上调用 clear 方法。

关于Java arraylist 清除或重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26454773/

相关文章:

java - 响应用户输入的 Applet 绘图

java - 使用 Java 找出独特的因素

java - 使用 packageName 和 Classloader 实例化 JAXBContext 时混淆 ClassNotFoundException

Java - 有类型的类?

java - 在 Java 中从 ArrayList 中删除对象

java - 尝试将 Double 解析为 String 时出现 ArrayOutOfBounds 异常

javascript - 我需要帮助修复列表数组中的错误

java - Java 中是否有任何构建方法可以将 2 个整数组合成一个 Set?

java - 从 Java 程序运行系统命令时无输出

java - yield 增加后 : How are They Implemented?