0

我正在使用矢量,当我复制数据并尝试对其进行编辑时,矢量和副本都发生了变化。

//The vectors contains int[] and the first 3 are loaded with int values.
int ToCheck[] = OpenSet.elementAt(Current);
ToCheck[1] = ToCheck[1] + 1; // This changes OpenSet and ToCheck[].
boolean IsInVector = false;

for(int y = 0;y < OpenSet.size(); y++){
     if(ToCheck == OpenSet.elementAt(y)) // Because it changed both values it always is true
     {
    IsInVector == true;
     }
}

我希望能够复制向量中的数据并在不更改原始数据的情况下对其进行编辑。

4

2 回答 2

0

您需要创建数组的完整副本:

int[] origArr = OpenSet.elementAt(Current);
int[] newArr = Arrays.copyOf(origArr, origArr.length);

另一个(不相关的)点 - 请遵循 Java 的命名约定,变量名的开头是小写。

于 2012-05-01T04:40:04.583 回答
0

复制数组的简单方法是使用Arrays.copyOf

int[] tmp = openSet.elementAt(current);
int toCheck[] = Arrays.copyOf(tmp, tmp.length);

在您聆听的同时,学习使用公认的 Java 命名约定。方法名称和字段/参数/本地名称应以小写字母开头。

于 2012-05-01T04:41:31.230 回答