import java.util.*;
class VectorLine{
Vector testVector;
VectorLine(){
testVector = new Vector();
}
void input(String[] value){
testVector.add(value);
}
void display(){
System.out.println("\n************************************");
System.out.println("倒序显示Vector中的内容:");
System.out.println("************************************\n");
for(int i = testVector.size()-1;i >= 0; i--){
System.out.println(testVector.elementAt(i));
}
System.out.println("\n************************************");
System.out.println("按降序显示Vector中的内容:");
System.out.println("************************************\n"); String temp = null;
for(int k =0; k < testVector.size(); k++){
for(int m = 0; m < testVector.size() - 1; m ++){
if( ((String) testVector.elementAt(m)).compareTo((String) testVector.elementAt(m+1)) < 0){
temp = (String) testVector.elementAt(m+1);
(String) testVector.elementAt(m+1) = (String) testVector.elementAt(m);
(String)  testVector.elementAt(m) = temp;
}
}
}
for(int m =0; m < testVector.size(); m++){
System.out.println(testVector.elementAt(m));
}
}
}class VectorLineTest{
VectorLineTest(){
}
public static void main(String[] args){

VectorLine obj = new VectorLine();
obj.input(args);
obj.display();
}
}
1.本例请帮忙改错,使Vector类对象中的元素按降序排列

解决方案 »

  1.   

    错误的地方在于:
    temp = (String)testVector.elementAt(m+1); 
    (String)testVector.elementAt(m+1) = (String)testVector.elementAt(m);
    (String)testVector.elementAt(m) = temp;
    .............
    Vector类型的不能这样直接改数据,应该用Vector.setElementAt(object, int)方法,
    所以,应该是,
    temp = (String)testVector.elementAt(m+1);
    testVector.setElementAt((String)testVector.elementAt(m), m+1);
    testVector.setElementAt(temp, m);
      

  2.   

    方法input()错误 void input(String[] value) {
    for(int i=0; i<value.length; i++){
    testVector.add(value[i]);
    }
    }