我有一个显示 Glassfish 日志文件列表的 JSF 页面。我使用延迟加载进行分页。我将日志文件名称列表保留在 Java List
中。
private List<directoryListObj> dataList = new ArrayList<>();
dataList = dataList.subList(firstRow, lastRow);
这就是问题所在。例如,我在目录中有 35 个文件。当我这样做时
dataList = dataList.subList(5, 15);
它工作正常。但是当我这样做时:
dataList = dataList.subList(30, 38);
我得到错误的错误索引,因为我想在列表之外获取索引。例如,如何将 List 元素从 30 返回到 35?我想如果我想获得从 30 到 40 的索引,但如果只有 35 个索引只能得到 5 个。
原文由 user1285928 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
subList(30, 38);
将失败,因为最大索引 38 在列表中不可用,因此不可能。唯一的方法可能是在请求子列表之前,您使用 list size() 方法明确确定最大索引。
例如,检查大小,返回 35,所以调用
sublist(30, size());
或者
从 pb2q 评论复制