当前位置: 首页 > 知识库问答 >
问题:

Java数组值被放入错误的数组

郭均
2023-03-14

下面的代码在循环中运行一次很好,但是在第二次运行时,theEquation已经更改了它的数据,即使没有任何东西引用它。

String[] theEquation = breakdown(theequation);
double[] yValues = new double[400];

for(int i=0; i < bitmapx; i++){
    Double v = xmin + (xstep * i);
    yValues[i] = Double.parseDouble( solveArrayX( theEquation , v ) );
}

例如,第一次通过For循环时,等式将具有{“x”、“^”、“2”}。下一次将是{previousCalculatedAnswer,null,null}

为什么要更改方程式?没有其他代码引用它。

共有1个答案

东郭自珍
2023-03-14

为什么方程被改变了?

表达式不包含数组,它包含对数组的引用。

执行solveArrayX(方程式,v)时,将此引用传递给更改数组的solveArrayX方法。请参见第120行和第121行:

public String solveArrayX(String[] tA, double d){
    ...

        tA[i] = tA[i+2];
        tA[i+2] = "";
    ...
}

如果要避免这种情况,可以使用数组。copyOf(theEquation,theEquation.length)作为方法的参数。

 类似资料:
  • 问题内容: int[][][] inputs; 这是我程序的摘录,我不知道为什么会导致错误。这不正确吗? 提前致谢 :-) 问题答案: 在Eclipse中,我得到了一个非常清晰的错误消息: 提供数组初始值设定项时,无法定义维表达式。 这意味着,可以 任一 指定的尺寸 或 数组初始化(即,值)。您 不能同时 指定两者。 只需将您的最后一行更改为

  • 问题内容: 我正在使用mongo 2.2.3和Java驱动程序。我的困境是,我必须将一个字段和值推入一个数组中,但是我似乎无法弄清楚该如何做。我的数据样本: 我可以在外壳中插入: 但是当我将其翻译成Java时,我迷惑了自己,将键盘卡在墙上。 到目前为止,我的Java代码(不完整和错误): 问题答案:

  • 问题内容: 对于请求和JSON,我是一个菜鸟。在我的应用程序内部,我发送到服务器并取回东西,因此我可以使用它。我尝试查找不同的东西,但似乎并没有真正找到我想要的东西。所以我找回了似乎格式化为JSON的内容。我想知道如何将其放入NSMutable数组中。我获取此JSON的方法是使用AFNetworking的AFJSONRequestOperation。 我的回应看起来像这样。 问题答案: 如果您的J

  • 所以我有一个选择题列表,我想存储,每次用户回答相同的问题,他对这个问题的答案。所以我想创建一个文档每个用户和他的回答历史每个问题。我做了一个问题数组,其中包含了questionId和一个答案数组(“ans”和他的答案。所以我写了一个基本代码,在这里我为问题1添加了他的第一个答案“a”,现在我想用答案“b”更新这个文档。 我知道这是一个非常基本的问题,但我已经搜索了其他问题,但我无法得到语法工作。我

  • 我有两个JTextFields,分别称为字段1和字段2,目标是键入一个名称,当我点击返回时,将这些值存储在nameArray[]中的位置0和1。 我不确定原因是我的操作侦听器的逻辑还是我声明数组的方式。如果是这些事情中的任何一个… 数组是这样声明的,就在我的类声明的下面: 下面是我的动作监听器和field1初始化: 字段 2: 强制性堆栈: 测试时线程“AWT-event queue-0”Java

  • 问题内容: 我有TreeNode的通用类: 当我尝试做时: 我出错了。但是“ new TreeNode [num_of_children]”有效。我读了有关类型擦除的文章,但我不明白为什么它不起作用。这是为什么?请赐教! 问题答案: 之类的东西,并通过Java是不允许的。您唯一可以做的就是和(无界通配符参数)。 这样做的原因有些复杂,但很有启发性。Java中的数组在运行时知道它们的组件类型,并且每