有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

EclipseJavaint[]向量给我的是点而不是数据。

我正在处理向量,当我复制数据并尝试编辑它时,向量和副本都会改变

//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) 个答案

  1. # 1 楼答案

    您需要创建阵列的完整副本:

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

    另一个(不相关的)要点——请遵循Java的命名约定,即变量名开头的小写字母

  2. # 2 楼答案

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

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

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