结果设置为嵌套Vector?

时间:2012-01-10 13:41:40

标签: java vector resultset

对不起,这看起来有点基本,但我今天无法理解。我有这个Vector,我想用ResultSet中的结果填充它,如下所示:

column1, column2, column3, column4, column5

Vector<Vector<String>> myVector = new Vector<Vector<String>>();

           while (rs.next()) {
                            String column1 = rs.getString(1);
                            String column2 = rs.getString(2);
                            String column3 = rs.getString(3);
                            String column4 = rs.getString(4);
                            String column5 = rs.getString(5);
                            myVector.put(column1, column2, column3, column4, column5);

这是正确的方法吗?

TIA

1 个答案:

答案 0 :(得分:3)

http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html

Vector实现了List界面,因此它有add(),而不是put()。 AFAIK在Java中没有支持使用varargs插入元素的集合,因此每个字符串必须调用一次:

while (rs.next()) {
    Vector v = new Vector<>();
    v.add(rs.getString(1));
    v.add(rs.getString(2));
    v.add(rs.getString(3));
    v.add(rs.getString(4));
    v.add(rs.getString(5));
    myVector.add(v);
}

最好使用ArrayList代替Vector,除非您需要同步(即便如此,还有更好的方法)。

编辑:最好的(IMO)方式是:

List<String[]> l = new ArrayList<>();

while (rs.next()) l.add(new String[] {
        rs.getString(1),
        rs.getString(2),
        rs.getString(3),
        rs.getString(4),
        rs.getString(5)
    });