关于vector 二维数组的问题……《java》

来源:百度知道 编辑:UC知道 时间:2024/06/02 04:44:24
Vector array = new Vector();
Vector arr = new Vector();
for (int i=0,j=0;i!=kssm;i++)
{j=0;
sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
array.removeAllElements();
arr.removeAllElements();
sqlRst=sqlStmt.executeQuery("select * from usr where zu='"+keshi.get(i)+"'");
while(sqlRst.next()) {
array.addElement(sqlRst.getString("name"));
arr.addElement(sqlRst.getString("user"));
}
username.addElement(arr);
xingming.addElement(array);
}
--------------------------------
username和xingming都是vector对象。。
可是用for循环调用的时候,i不管等于几((Vector)username.elementAt(i)).elementAt(0)都是一样的…………(i<username.size())哪里有问题?

把2个new放到for中好了,我看你的程序是每次for都是要新的对象,所以有问题

Vector array ;
Vector arr ;
for (int i=0,j=0;i!=kssm;i++)
{
array = new Vector();
arr = new Vector();
j=0;
sqlStmt=sqlConn.createStatement (java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
array.removeAllElements();
arr.removeAllElements();
sqlRst=sqlStmt.executeQuery("select * from usr where zu='"+keshi.get(i)+"'");
while(sqlRst.next()) {
array.addElement(sqlRst.getString("name"));
arr.addElement(sqlRst.getString("user"));
}
username.addElement(arr);
xingming.addElement(array);
}

“可是用for循环调用的时候,i不管等于几((Vector)username.elementAt(i)).elementAt(0)都是一样的…………(i<username.size())哪里有问题?”

接1楼的:
因为只生成了1个:Vector array = new Vector();
而在for循环中:xingming.addElement(array);
即每一次都是add的同一个array
即xingming每一个元素都是同一个array (引用类型)