gpt4 book ai didi

java - 为什么我可以在超出范围的方法中修改列表而不返回它?

转载 作者:行者123 更新时间:2023-11-29 02:58:56 24 4
gpt4 key购买 nike

<分区>

假设我像这样初始化我的列表:

public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add("one");
a.add("two");
a.add("three");
a.add("four");
modifyList(a);
}

其中 modifyList 只是将每个值更改为“一个”,如下所示:

private static void modifyList(ArrayList<String> a) {
for (int i = 0; i < a.size(); i++) {
a.set(i, "one");
}
}

如果我在调用此方法之前和之后打印列表,我希望相同的原始列表出现两次。但是由于某些原因,modifyList 中修改的ArrayList 与main 中的ArrayList 相同。

如果我尝试使用整数和字符串而不是列表进行相同的实验,它们不会被修改。

谁能解释一下为什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com