关于vector 二维数组的问题……《java》
发布网友
发布时间:2023-05-05 15:37
我来回答
共3个回答
热心网友
时间:2023-11-17 09:06
把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);
}
热心网友
时间:2023-11-17 09:07
“可是用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 (引用类型)
当然结果相同了阿。
想想使不是这麽回事?
热心网友
时间:2023-11-17 09:07
没什么问题。同一句sql,查出来的结果当然一样了。
每个arr中都放了你的usr表中所有记录的user,它们放入的顺序是要样的,取时也是相同的,结果当然也都是相同的了。
热心网友
时间:2023-11-17 09:06
把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);
}
热心网友
时间:2023-11-17 09:07
“可是用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 (引用类型)
当然结果相同了阿。
想想使不是这麽回事?
热心网友
时间:2023-11-17 09:07
没什么问题。同一句sql,查出来的结果当然一样了。
每个arr中都放了你的usr表中所有记录的user,它们放入的顺序是要样的,取时也是相同的,结果当然也都是相同的了。
热心网友
时间:2023-11-17 09:06
把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);
}
热心网友
时间:2023-11-17 09:07
“可是用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 (引用类型)
当然结果相同了阿。
想想使不是这麽回事?
热心网友
时间:2023-11-17 09:07
没什么问题。同一句sql,查出来的结果当然一样了。
每个arr中都放了你的usr表中所有记录的user,它们放入的顺序是要样的,取时也是相同的,结果当然也都是相同的了。