首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

关于vector中元素重复的有关问题

2013-09-07 
关于vector中元素重复的问题新手第一次发帖,这是一个管理系统的作业。先贴相关代码:Vector sbVec new Vec

关于vector中元素重复的问题
新手第一次发帖,这是一个管理系统的作业。先贴相关代码:

Vector sbVec = new Vector();
try {
PreparedStatement statement0 = ct.prepareStatement("select *" +
"from tblGoods where GSORT='"+sortSearch+"' ");
rs=statement0.executeQuery();

StringBuffer strb=new StringBuffer();
int rsnextcount=0;
while(rs.next()){

rsnextcount+=1;
strb.delete(0, strb.length());
strb.append(rs.getString(2)+"\t"+"\t" +"¥"+rs.getString(5)+"\t"+rs.getString(3)+"\t"+rs.getString(6)+"\t"+ "\n");
System.out.println("rs.next count is \n"+rsnextcount);
System.out.println("now strb is "+strb);
//sbVec.addElement(strb);
sbVec.add(strb);
}
for(int i=0;i<5;i++){
//System.out.println("still right before print vector");
System.out.println("sbVec"+i+" is "+sbVec.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}

return sbVec;

代码如上,输出为
rs.next count is 
1
now strb is 熊猫 便携式镀膜双筒望远镜¥55.010运动户外

rs.next count is 
2
now strb is 迈博 碳素羽毛球拍 2支装¥99.010运动户外

rs.next count is 
3
now strb is N新百伦 中性 休闲跑步鞋¥809.010运动户外

rs.next count is 
4
now strb is 鸿锐克 火苗胶印平角泳裤¥32.010运动户外

rs.next count is 
5
now strb is 红双喜3星事用乒乓球6只¥38.010运动户外

sbVec0 is 红双喜3星事用乒乓球6只¥38.010运动户外

sbVec1 is 红双喜3星事用乒乓球6只¥38.010运动户外

sbVec2 is 红双喜3星事用乒乓球6只¥38.010运动户外

sbVec3 is 红双喜3星事用乒乓球6只¥38.010运动户外

sbVec4 is 红双喜3星事用乒乓球6只¥38.010运动户外


我想将strb都添加进vector,而得到的是
sbVec0="熊猫 便携式镀膜双筒望远镜¥55.010运动户外"
sbVec1="迈博 碳素羽毛球拍 2支装¥99.010运动户外"
......以此类推
请问问题出在哪里?


java vector stringbuffer
[解决办法]
Vector sbVec = new Vector(); 


        try {        
            PreparedStatement statement0 = ct.prepareStatement("select *" +
                    "from tblGoods where GSORT='"+sortSearch+"' ");                
            rs=statement0.executeQuery();
             
            StringBuffer strb=null;
            int rsnextcount=0;
            while(rs.next()){
               strb=new StringBuffer();
                rsnextcount+=1;
               // strb.delete(0, strb.length());
                strb.append(rs.getString(2)+"\t"+"\t" +"¥"+rs.getString(5)+"\t"+rs.getString(3)+"\t"+rs.getString(6)+"\t"+ "\n");
                System.out.println("rs.next count is \n"+rsnextcount);
                System.out.println("now strb is "+strb);
                //sbVec.addElement(strb);
                sbVec.add(strb);
            }
        for(int i=0;i<5;i++){
            //System.out.println("still right before print vector");
            System.out.println("sbVec"+i+" is "+sbVec.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return sbVec;


[解决办法]
你删除了之后再添加,他们都是同一个引用。 你从上到下debug就知道了。

热点排行