变量预期java矢量

时间:2017-12-10 17:41:18

标签: java vector swap

我正在编写用于交换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只是另一个类,vectormaxHeap的每个节点都是vector

2 个答案:

答案 0 :(得分:0)

您无法为方法的结果指定新值。相反,您可以使用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++;
}

答案 1 :(得分:0)

您无法将函数调用的结果分配给右值;相反,你使用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++;
}