我正在编写用于交换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
。
答案 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++;
}