Java int []向量给出了点而不是数据。

时间:2012-05-01 04:35:40

标签: java eclipse vector

我正在使用向量,当我复制数据并尝试编辑它时,向量和副本都会发生变化。

//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;
     }
}

我希望能够复制矢量中的数据并进行编辑,而无需更改原始数据。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

当您正在倾听时,学会使用已接受的Java命名约定。方法名称和字段/参数/本地名称应以小写字母开头。