gpt4 book ai didi

java - 从 arraylist 取消同步数组

转载 作者:行者123 更新时间:2023-12-01 18:01:38 24 4
gpt4 key购买 nike

一个基本示例

    int[] B;
B=new int[4];
B[0]=4;
B[1]=3;
B[2]=2;
B[3]=1;
ArrayList<int[]> C = new ArrayList<int[]>();
C.add(B);
B[0]=3;
B[1]=2;
B[2]=4;
B[3]=1;
C.add(B);

我有一个添加到列表中的基本数组,我在循环中更改数组 B 值,我想将循环中的每个新 B 添加到 C,但 C 会自动与 B 同步,这阻止我添加新的 B。我需要添加新的 B 的原因是为了跟踪循环的进度并防止重复。

当前 C 的大小始终为 1,而新的 B 则为 1。

最佳答案

保存数组的副本:

C.add(Arrays.copyOf(B, B.length)); //or System#arraycopy

Java 是按引用值传递的,因此数组是按引用传递的,并且不会复制自身。

您应该尝试遵守通用的风格指南(例如 Oracle/Google 变量命名约定)。

关于java - 从 arraylist 取消同步数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40499544/

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