限制从所有数据显示50

时间:2013-12-06 09:55:45

标签: java

你好,我对这段代码有点混淆....对不起我的坏语法......这个java中还是新的。

private void loadSessionEvents() {
        ArgumentBuilder arg = new ArgumentBuilder();
        arg.addArg(getSessionLogId());
        DBResult result = DBOperator.getInstance().doOperation(
                FileOperation.class, "loadSessionLogEvents", arg.getTypeInfo());
        // ArrayList<MsmLogIveScreenshots> logEvent =
        // (ArrayList<MsmLogIveScreenshots>) result
        // .getValue("RETURN");
        // setSessionLogEvents(logEvent);

        ArrayList<Object> logList = (ArrayList<Object>) result
                .getValue("RETURN");
        ArrayList<SessionLogEventModel> windowLogs = null;
        if (ValidationUtils.nonNullAndNotEmpty(logList)) {
            windowLogs = new ArrayList<SessionLogEventModel>(); 
            for (int i = 0; i < logList.size(); i++) {
                Object obj = logList.get(i);
                if (obj instanceof MsmLogIveScreenshots) {
                    SessionLogEventModel log = convertSessionLogToModel((MsmLogIveScreenshots) obj);
                    windowLogs.add(log);
                } else if (obj instanceof MsmDbAuditOracle) {
                    SessionLogEventModel log = convertOracleLogToModel((MsmDbAuditOracle) obj);
                    windowLogs.add(log);
                }
            }
            setSessionLogEventModel(windowLogs);
            }

据我所知,for循环最终将加载所有数据..但我想要的是它仍然会加载所有数据但只选择50个数据列表再次显示在jsp..sorry中我的语法..

1 个答案:

答案 0 :(得分:0)

这里最常见的做法是采用最近的50个值。所以我要做的就是检查长度,然后使用subList

实施例

if(logList.size() > 50)
{
    // you've got more than 50 objects here.
    logList = logList.subList(logList.size() - 50, logList.size());
}

如果List中有少于或等于50个元素,则无需删除它。