首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么ArrayList仍然是空的,而将另一个类中的对象添加到列表中仍然有效?

ArrayList是Java中的一个动态数组,它可以存储任意类型的对象。当我们创建一个ArrayList对象时,它的初始大小为0,即为空。

在Java中,对象是通过引用来传递的。当我们将一个类的对象添加到ArrayList中时,实际上是将该对象的引用添加到了列表中。这意味着,即使原始对象被修改或删除,列表中的引用仍然有效。

所以,当你将另一个类中的对象添加到ArrayList中时,即使原始ArrayList仍然为空,列表中仍然有效地存储了该对象的引用。这是因为ArrayList只是存储了对象的引用,并没有复制对象本身。

举个例子来说明:

代码语言:txt
复制
class MyClass {
    int value;
    
    public MyClass(int value) {
        this.value = value;
    }
}

public class Main {
    public static void main(String[] args) {
        ArrayList<MyClass> list = new ArrayList<>();
        MyClass obj = new MyClass(10);
        
        list.add(obj);
        obj.value = 20;
        
        System.out.println(list.get(0).value);  // 输出结果为20
    }
}

在上面的例子中,我们创建了一个ArrayList对象list和一个MyClass对象obj。我们将obj添加到list中,并修改了obj的value属性。然后,我们通过list获取到了obj,并打印了它的value属性。由于list中存储的是obj的引用,所以当我们修改obj的属性时,list中的引用也会反映出这个改变。

总结一下,ArrayList仍然是空的,是因为它的大小为0,没有存储任何对象。但是,将另一个类中的对象添加到列表中仍然有效,是因为ArrayList存储的是对象的引用,而不是对象本身。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券