java - 将数组列表添加到另一个数组列表

标签 java

我正在尝试在另一个数组列表中添加数组列表,并返回最终的数组列表。 我的表中有4条记录,当我尝试显示时,第一组记录只有4次出现。

    ArrayList<String> al = new ArrayList<String>();
    ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

    try
    {
        conn=com.sample.DBConnection.getDBConnection();
        String query= null;
        query=com.sample.RRRConstants.REPORT_SUMMERY;
        st = conn.createStatement();
        rs=st.executeQuery(query);
         Map<String, Object[]> summ = new HashMap<String, Object[]>();

        while(rs.next())
        {

            al.add(rs.getString("sched_id"));
            al.add(rs.getString("sched_name"));
            al.add(rs.getString("gen_date"));
            al.add(rs.getString("gen_time"));
            al.add(rs.getString("generated_by"));
            al.add(rs.getString("gen_version"));
            al.add(rs.getString("gen_status"));
            list.add(al);   

        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

显示:

     ArrayList<ArrayList<String>> a1 =rs.getSummary();

     ArrayList<String> a2 = new ArrayList<String>();


     for (int i=0 ; i <a1.size() ; ++i)
     {
         a2 = a1.get(i);
         System.out.println(i +" record "+a2.get(0));
         System.out.println(i +" record "+a2.get(1));
         System.out.println(i +" record "+a2.get(2));
         System.out.println(i +" record "+a2.get(3));
         System.out.println(i +" record "+a2.get(4));
         System.out.println(i +" record "+a2.get(5));
         System.out.println(i +" record "+a2.get(6));
     }  

最佳答案

您正在创建一个 ArrayList<String> ,并将对该列表的引用添加到您的 ArrayList<ArrayList<String>> 中多次。

您需要在循环内创建一个新对象,以便每次迭代都会创建一个独立的列表:

while(rs.next())
{
    ArrayList<String> al = new ArrayList<>();
    ...
}

但是,我建议不要使用 ArrayList<String>无论如何,鉴于您有非常具体的字段,为什么不使用计划 ID、计划名称等属性创建自己的类型呢?这可能比将每个索引与特定含义相关联的字符串列表更容易使用。

关于java - 将数组列表添加到另一个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752350/

相关文章:

java - 刚刚创建了一个新的 android 应用程序项目,当我尝试运行简单的 hello world 它有一个错误

java - Android 设备的 USB 检测代码崩溃

java - Java 的 Thread.sleep 在这里有什么用处?

java - 如何使用 JUnit/Ant 加载属性文件?

java - Spark Streaming 模型覆盖

java - 如何从 jmx 客户端访问 dynamicmbean

java - 多catch异常处理和多态性

java - 如何在 Java Servlet 中获取文件的路径

java - 验证多个 Controller 方法的 URL 路径

eclipse - 访问 JFrame 时 JVM 以退出代码 1 终止