读书人

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

发布时间: 2013-09-07 14:12:44 作者: rapoo

关于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就知道了。

读书人网 >Java相关

热点推荐