java - java中使用While循环计算列表的元素数量

标签 java

我在 URL 中传递一些参数,然后将它们添加到列表中。我的列表限制为 5 个元素。因此,如果有人在 URL 中添加第 6 个元素,列表将忽略它。所以我尝试使用计数器,但逻辑未按预期工作。我使用 While 循环来实现这一点。因此,如果列表大小小于 5,请设置 AgencyCds,否则仅返回列表。

private List<IUiIntegrationDto> generateViewIntegrationReportData(ESignatureIntegrationConfig eSignConfig) throws Exception {
    int counter = 1;
    if(eSignConfig.getAdditionalAgencyCds() != null ) {

        List<String> combinedAgencyCds = new ArrayList<String>();

        for(String agencyCd : eSignConfig.getAgencyCd()) {
            combinedAgencyCds.add(agencyCd);
        }

        StringTokenizer token = new StringTokenizer(eSignConfig.getAdditionalAgencyCds().toString(), StringConstants.COMMA);
        while(token.hasMoreTokens()) {
            combinedAgencyCds.add(token.nextToken());
        }

        while(combinedAgencyCds.size() < 5) {
            counter = counter + 1;
            eSignConfig.setAgencyCd(combinedAgencyCds);
        }

    //  eSignConfig.setAgencyCd(combinedAgencyCds);
    } 
    List<IUiIntegrationDto> intgList = getUiIntegrationManager().retrieveUiIntegrationReportData(eSignConfig.getAgencyCd(), eSignConfig.getCreatedDays(),
            eSignConfig.getLob(), eSignConfig.getTransactionStatus(), eSignConfig.getAccounts(), eSignConfig.getSortKey(), eSignConfig.getSortOrder());

    return intgList;
}

我不完全确定这个逻辑是否正确或者是否有更好的方法。

谢谢

最佳答案

在代码中尝试这个而不是最后一个:

if(combinedAgencyCds.size() <= 5) {
   eSignConfig.setAgencyCd(combinedAgencyCds); 
} else {
   eSignConfig.setAgencyCd(combinedAgencyCds.subList(0, 5));
}

如果大小小于 5,则将使用完整的组合列表。否则,仅使用前 5 个元素。

编辑:或者更好:

eSignConfig.setAgencyCd(combinedAgencyCds.subList(0, Math.min(5, combinedAgencyCds.size())));

关于java - java中使用While循环计算列表的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125757/

相关文章:

Java、UI 中的幂和索引输出

java - Android Intent 不起作用

java - 不改变时区的日期时间解析

java - SQL Developer 错误无法找到 Java 虚拟机

java - 尽量减少 if 语句的使用

java - Spring Security & inMemoryAuthentication() & 错误凭证

java - 打印所有数组值

java - 将 oracle.sql.timestamptz 转换为 java.sql.Timestamp

java - 如何保存运行时创建的 JMeter 变量? (具体来说是 JSON 到 xml 的片段)

java - Android:java TextView颜色