java - java中如何创建可以存储多种数据类型对象的arraylist类

标签 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

如何生成数组列表如下:

Name       Id
A          1
B          2

最佳答案

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

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

关于java - java中如何创建可以存储多种数据类型对象的arraylist类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395263/

相关文章:

c++ - 类型信息/类型标识输出

c# - 将 long.MaxValue 转换为 int 和将 float.MaxValue 转换为 int 有什么区别?

java - 在除法之前将 int 类型转换为 float。我真正需要哪些类型转换,我可以删除哪些类型转换,为什么?

java - 无法 Intent 下一个布局

java - 如何将 java 组件中的内容记录到 Mule 日志文件中?

java - 如何使用ArrayList在Java Jtable中显示mysql表中的所有数据?

java - 查找对象 ArrayList 中每个字段的最小值/最大值的有效方法

java - 无法在运行时(运行 Activity )更改配置(语言环境)

java - 为什么我的 .isEmpty 在此代码中不起作用?

java - 如果该行包含字符串匹配的任何部分,则使用扫描仪显示整行(Java)