java - 空列表错误

标签 java list

我有以下代码

    ArrayList<ArrayList<String>> reservation = new ArrayList<ArrayList<String>>();
    ArrayList<String> singleList = new ArrayList<String>();
    while (rs.next()){
        singleList.add(rs.getString("name"));
        singleList.add(rs.getString("type"));
        singleList.add(rs.getString("view"));
        singleList.add(rs.getString("service"));
        singleList.add(rs.getString("checkin"));
        singleList.add(rs.getString("date"));
        reservation.add(singleList);
        // correct line System.out.println(reservation.get(0).get(0));
        singleList.clear();
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    // wrong lineSystem.out.println(reservation.get(0).get(0));
    return reservation;
}

当我取消注释错误的行(第二个 System.out)时,我收到一个 Index: 0, Size: 0 错误 但如果我取消注释正确的行(第一个 System.out),程序就会运行很好并得到正确的结果。为什么我的 reservation 列表在 while 循环后变空?

最佳答案

不要清除 singleList,循环内创建一个新的 ArrayList 实例。

List<List<String>> reservation = new ArrayList<>();
// ArrayList<String> singleList = new ArrayList<String>();
while (rs.next()){
    List<String> singleList = new ArrayList<>();
    singleList.add(rs.getString("name"));
    singleList.add(rs.getString("type"));
    singleList.add(rs.getString("view"));
    singleList.add(rs.getString("service"));
    singleList.add(rs.getString("checkin"));
    singleList.add(rs.getString("date"));
    reservation.add(singleList);
    // correct line System.out.println(reservation.get(0).get(0));
    // singleList.clear();
}

否则,您将在添加后立即清除添加到预留列表中的对象。了解您的代码不断地将相同的 singleList 实例添加到保留列表中,并在 for 循环中填充此单个实例并在无用的循环中清空它。

关于java - 空列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025487/

相关文章:

java - Apache Commons Daemon - 无法启动服务

java - FileChannel 和 FileInputStream 中 read(ByteBuffer) 和 read(byte[]) 之间的区别

java - 如何使用阅读器从文件系统读取文本文件(.txt)并将每个文件的文本传递给处理器Spring Batch?

c# - 试图制作一个二维列表数组

python - 具有两个条件的列表中的最大值

list - TCL从列表中删除元素

python - 如何检测子列表中的逻辑和字符串索引并将其删除

java - 选择两个 JTable 中的多个项目

java - 如何在 Eclipse 中安装最新版本的 Xuggler(5.4,截至 18/05/2013)?

java - 找不到项目时抛出异常 - Java