首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现Java ArrayList按引用传递?

如何实现Java ArrayList按引用传递?
EN

Stack Overflow用户
提问于 2018-10-07 23:55:15
回答 2查看 0关注 0票数 0
代码语言:javascript
复制
public class test
{
    public static void main(String[] args)
    {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        modifyList(list);
        for(int a : list)
        {
            System.out.println(a); // prints "1" 
        }

        list = new ArrayList<>();
        for(int a : list)
        {   
            System.out.println(a); // prints nothing
        }
    }

    public static void modifyList(List<Integer> list)
    {
        list = new ArrayList<>();
    }
}

有没有人知道为什么在调用modifyList()之后,list仍然包含元素1而不是指向一个什么都不包含的新地址?我的理解是arrayList是一个对象,因此它可以通过引用传递,它是可变的。例如,如果我在modifyList()中执行list.add(2),则同一列表中将包含2个元素。

EN

Stack Overflow用户

发布于 2018-10-08 08:20:01

参数of modifyList是原始引用的副本,这意味着它指向同一个对象,但它不是相同的引用

现在list = new ArrayList<>();,复制引用指向一个新对象,但原始引用仍指向原始列表。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档