有关Vector程序的一个问题,各位帮我看看!
程序是从命令行参数接收一些字符串值并将这些值存储在Vector中,倒序显示和降序显示。降序显示不出来,请帮忙看看,非常感谢!
代码如下:
import java.util.Vector;
import java.lang.String;
public class VectorTest {
Vector obj;
VectorTest()
{
obj=new Vector();
}
/*输入几个字符串*/
void add(final String[] str)
{
for(int i=0;i <str.length;i++)
{
obj.addElement(str[i]);
}
}
/*倒须输出*/
void daoxu()
{
System.out.println( "\n************************* ");
System.out.println( "倒序显示的内容 ");
System.out.println( "************************* ");
for(int i=obj.size()-1;i> =0;i--)
{
System.out.println(obj.elementAt(i));
}
}
/*降序输出*/
void jiangxu()
{
System.out.println( "*********************************** ");
System.out.println( "按降序分类的内容 ");
System.out.println( "*********************************** ");
while(obj.size()!=0)
{
/*冒泡排序*/
for(int i=0;i <obj.size();i++)
{
for(int j=0;j <obj.size()-i-1;j++)
{
String temp;
if(obj.elementAt(j+1).toString().compareTo(obj.elementAt(j).toString())> 0)
{
temp=obj.elementAt(j).toString();
obj.setElementAt(obj.elementAt(j+1).toString(),j);
obj.setElementAt(temp,j+1);
}
}
}
/*for(int i=0;i <obj.size()-1;i++)
{
if((obj.elementAt(i+1).toString()).compareTo(obj.elementAt(i).toString())> 0)
{
//String s0=(String)(obj.elementAt(0));
//(obj.elementAt(i)).toString()=obj.elementAt(i+1).toString();
temp=obj.elementAt(i).toString();
obj.elementAt(i+1).toString()=temp;
obj.elementAt(i).toString()=obj.elementAt(i+1).toString();
System.out.println(obj.elementAt(i).toString());
}
}*/
}
System.out.println();
for(int i=0;i <obj.size();i++)
{
System.out.println(obj.elementAt(i)+ " ");
}
}
public static void main(String[] args) {
VectorTest VectorObj=new VectorTest();
VectorObj.add(args);
VectorObj.daoxu();
VectorObj.jiangxu();
}
}
[解决办法]
while(obj.size()!=0)这个条件死循环了,去掉就OK了吧