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

眼睛伯格

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

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与中的ArrayList相同main

如果我尝试使用int和Strings而不是Lists进行相同的实验,则它们不会被修改。

谁能解释为什么?

杰森

在Java中,参数是通过值传递的。

但是,您将对ArrayList的引用传递给方法(并且引用本身按值传递),因此该方法修改了原始列表。

如果要确保不会发生这种情况,则需要传递一个不可变的列表作为参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的R循环返回超出范围的错误?

来自分类Dev

为什么我在C ++中超出范围,但在Perl中却超出范围?

来自分类Dev

为什么我的for循环超出范围?

来自分类Dev

为什么局部变量不超出范围?

来自分类Dev

当我输入超出范围的数字时,为什么它不返回任何类型?

来自分类Dev

为什么我可以为TypeScript枚举分配明确的超出范围的值?

来自分类Dev

IndexError:列表索引超出范围:我可以理解为什么会发生此错误

来自分类Dev

为什么会返回超出范围的索引?

来自分类Dev

为什么访问MySQL表中的任何值时,SparkSQL总是返回超出范围的值?

来自分类Dev

为什么scala在此模运算中返回超出范围的值?

来自分类Dev

为什么函数在 Python 中返回错误“列表索引超出范围”?

来自分类Dev

为什么我收到“列表索引超出范围”的错误

来自分类Dev

为什么我的索引超出范围异常

来自分类Dev

为什么我的索引超出范围异常?

来自分类Dev

为什么我的linq别名超出范围?

来自分类Java

索引超出范围-我不明白为什么

来自分类Java

为什么我的变量没有超出范围?

来自分类Dev

为什么我的向量下标超出范围?

来自分类Dev

为什么我的字符串索引超出范围?

来自分类Dev

为什么我总是让孩子超出范围错误?

来自分类Dev

为什么我的角色动画超出范围

来自分类Dev

为什么我的代码索引超出范围?

来自分类Dev

为什么我的列表索引超出范围?

来自分类Dev

为什么我收到异常ArgumentOutOfRangeException:参数超出范围。

来自分类Dev

为什么我得到这个索引超出范围错误?

来自分类Dev

为什么我断言失败,向量订阅超出范围

来自分类Dev

为什么我得到“IndexError:列表索引超出范围”

来自分类Dev

为什么List IndexOf允许超出范围的起始索引?

来自分类Dev

为什么此算法中的数组索引超出范围?

Related 相关文章

  1. 1

    为什么我的R循环返回超出范围的错误?

  2. 2

    为什么我在C ++中超出范围,但在Perl中却超出范围?

  3. 3

    为什么我的for循环超出范围?

  4. 4

    为什么局部变量不超出范围?

  5. 5

    当我输入超出范围的数字时,为什么它不返回任何类型?

  6. 6

    为什么我可以为TypeScript枚举分配明确的超出范围的值?

  7. 7

    IndexError:列表索引超出范围:我可以理解为什么会发生此错误

  8. 8

    为什么会返回超出范围的索引?

  9. 9

    为什么访问MySQL表中的任何值时,SparkSQL总是返回超出范围的值?

  10. 10

    为什么scala在此模运算中返回超出范围的值?

  11. 11

    为什么函数在 Python 中返回错误“列表索引超出范围”?

  12. 12

    为什么我收到“列表索引超出范围”的错误

  13. 13

    为什么我的索引超出范围异常

  14. 14

    为什么我的索引超出范围异常?

  15. 15

    为什么我的linq别名超出范围?

  16. 16

    索引超出范围-我不明白为什么

  17. 17

    为什么我的变量没有超出范围?

  18. 18

    为什么我的向量下标超出范围?

  19. 19

    为什么我的字符串索引超出范围?

  20. 20

    为什么我总是让孩子超出范围错误?

  21. 21

    为什么我的角色动画超出范围

  22. 22

    为什么我的代码索引超出范围?

  23. 23

    为什么我的列表索引超出范围?

  24. 24

    为什么我收到异常ArgumentOutOfRangeException:参数超出范围。

  25. 25

    为什么我得到这个索引超出范围错误?

  26. 26

    为什么我断言失败,向量订阅超出范围

  27. 27

    为什么我得到“IndexError:列表索引超出范围”

  28. 28

    为什么List IndexOf允许超出范围的起始索引?

  29. 29

    为什么此算法中的数组索引超出范围?

热门标签

归档