首页
学习
活动
专区
工具
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存储的是对象的引用,而不是对象本身。

相关搜索:如何将对象添加到另一个类的列表中?如何从C#中的另一个类创建对象的ArrayList从具有另一个对象arraylist属性的对象数组列表中获取值如何将类中的方法添加到另一个类的现有对象中python -将类对象追加到另一个类中的列表如何将对象从ArrayList移动到另一个类中的RecyclerView?Spring Boot:为什么Custom Validator类中的自动连接对象为空?为什么包含在类外部的模块将实例方法添加到类的对象中根据.net中的另一个列表过滤或删除DTO类对象中的数组对象如何获取和处理另一个类中的对象列表?将一个类的信息添加到另一个类的数组列表中如何将一个类的多个对象引用添加到flutter中的列表中?在C#中将空项添加到自定义对象的下拉列表中将另一个类引发的值添加到列表中引发NullRefernceException将一个文件中的所有对象添加到另一个文件的列表中有效地将多个项目添加到arraylist对象中,以避免向android studio java中的另一个活动发送意图时出现越界异常。如何将列表的子集添加到另一个列表中对象的属性-最佳/最快实践为什么我不能在c#中将对象添加到我的列表中?如何遍历Object类型(如类)的列表(特别是ArrayList)并收集每个对象中的特定字符串为什么当通过另一个脚本将脚本添加到选定的游戏对象时,会将该脚本添加到列表中的每个对象两次?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券