如何创建一个可以在java中存储多个数据类型对象的arraylist类

时间:2014-04-30 18:17:08

标签: java arraylist types

我正在使用返回输出的JDBC查询,如下所示:

Name       Id
A          1
B          2

然后我尝试使用以下java类基于查询结果生成arrylist:

private class GetCompanyInfo implements Work {
    ArrayList<CompanyRelatedInfo> companyRelatedDataList = new ArrayList<CompanyRelatedInfo>();
    private String queryString;

    @Override
    public void execute(Connection connection) throws SQLException {        
        PreparedStatement ps = connection.prepareStatement(queryString);
        ResultSet rs = ps.executeQuery();
        CompanyRelatedInfo ci = new CompanyRelatedInfo();       
        while(rs.next())
        {   
            String name = rs.getString("name");
            Long id = rs.getLong("id");

            ci.setName(name);
            ci.setId(id);
            companyRelatedDataList.add(ci);
        }   
        rs.close();
        ps.close();
    }
}

但问题是arraylist返回结果如下:

Name       Id
B          2
B          2

如何生成arraylist如下:

Name       Id
A          1
B          2

1 个答案:

答案 0 :(得分:3)

创建CompanyRelatedInfo的新实例,而不是使用相同的实例。您只需修改所有行的同一个对象,并将其多次放入列表中。因此,请尝试使用以下内容:

while(rs.next()) {   
  CompanyRelatedInfo ci = new CompanyRelatedInfo();       
  ...