Java 如何更改向量中元素的顺序?
我有一个水果类型的载体。我可以在绘图画布上插入不同类型的水果。如果我有两个重叠的水果,我希望能够在选择水果后提升它,使它现在看起来好像它位于其他水果的顶部 我的基本想法是在按下jbutton后调用一个raiseFruit()。我创建一个等于所选水果的临时变量集,然后尝试将其设置为等于(a+1)…的水果,因此向量中的下一个位置。然后我将它设置为等于temp变量。我认为这是正确的想法Java 如何更改向量中元素的顺序?,java,Java,我有一个水果类型的载体。我可以在绘图画布上插入不同类型的水果。如果我有两个重叠的水果,我希望能够在选择水果后提升它,使它现在看起来好像它位于其他水果的顶部 我的基本想法是在按下jbutton后调用一个raiseFruit()。我创建一个等于所选水果的临时变量集,然后尝试将其设置为等于(a+1)…的水果,因此向量中的下一个位置。然后我将它设置为等于temp变量。我认为这是正确的想法 public void raiseFruit() { //raisefruit button if (_fr
public void raiseFruit() { //raisefruit button
if (_fruitIsSelected==true) {
for (int i=0; i<_storedFruit.size() - 1; i++) {
FunFruit a = _storedFruit.get(i);
FunFruit b = _storedFruit.get(i + 1);
if (_storedFruit.get(i+1)!=null) {
FunFruit temp = a;
_storedFruit.get(i) = _storedFruit.get(i+1);
a=b;
b = temp;
//_storedShapes.setElementAt(_storedShapes.get(i+1), i);
//_storedShapes.setElementAt(_currentShape, i+1);
repaint();
}
}
}
}
public void raiseFruit(){//raiseFruit按钮
如果(_fruitIsSelected==true){
对于(int i=0;i您正在重新分配临时变量,而不是列表。使用
_fruits.setElementAt(fruit, index);
在列表中设置元素而不是
_fruits.get(_currentSelectedFruit + 1) = temp;
在这个例子中,你只是把get返回的指针分配给temp只是好奇,你在哪里学会了使用Vector
?你确定你没有读到严重过时的Java书籍/教程吗?十多年来Vector
被认为是一个遗留/过时的类。为什么Vector被认为是一个过时的类课堂?我在高中的AP计算机科学课上学会了使用它们。向量肯定不是过时的。虽然它们的用处和ArrayList或者从Collections课堂上获得的对象一样大,但它们仍然具有其他类似课堂上无法使用的功能。