【问题标题】:Variable expected java vector变量期望的java向量
【发布时间】:2017-12-10 17:41:17
【问题描述】:

我正在编写用于交换java.util.Vector 中的两个元素的代码。 但我在这一行遇到了这个错误:

public void swap(int i, int j) {
    Order temp = maxHeap.get(i);
    maxHeap.elementAt(i) = maxHeap.get(j); // variable expected 
    maxHeap.get(j) = temp; // variable expected
    swapCounter++;
}

那么,我应该如何更改矢量节点的元素? BTW Order 只是另一个类,它是vector 的每个节点,maxHeap 是我的vector

【问题讨论】:

  • 不能将maxHeap.get的结果赋给maxHeap.elementAt返回的右值。
  • 你知道我应该怎么做吗? @ElliottFrisch
  • maxHeap.get(j) = temp; 片段maxHeap.get(j) 不返回变量,而是返回值并且你不能将值分配给值,这就像试图分配2 = 0,这是没有意义的。 maxHeap.elementAt(i) = maxHeap.get(j); 也一样。您需要在指定位置set新值。

标签: java vector swap


【解决方案1】:

您不能将函数调用的结果分配给右值;相反,您使用 Vector.setElementAt(E, int) 喜欢

public void swap(int i, int j) {
    Order temp = maxHeap.get(i);
    maxHeap.setElementAt(maxHeap.get(j), i);
    maxHeap.setElementAt(temp, j);
    swapCounter++;
}

【讨论】:

    【解决方案2】:

    您不能为方法的结果分配新值。相反,您可以使用List 接口指定的set 方法:

    public void swap(int i, int j) {
        Order temp = maxHeap.get(i);
        maxHeap.set(i, maxHeap.get(j);
        maxHeap.set(j, temp);
        swapCounter++;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      相关资源
      最近更新 更多