是否在迭代时使用arraylist或其他一些集合

时间:2012-06-21 20:33:11

标签: java collections

我有两个说明SignProfileValidationProfile的个人资料。这些配置文件可以超过1,比如

SignProfile.size >1 and  ValidationProfile.size>1

现在,只要SignProfileValidationProfile不是null,我就必须执行一段代码,如果它们多于一个,我还需要遍历这些配置文件签名和验证。

我正在使用

List<SignProfile> SP = new ArrayList<>;
List<ValidationProfile> Vali = new ArrayList<>;
while SP_interator.hasnext
{
    while Vali_interator.hasnext
    {
        // do something
    }
    // Piece of code
}

现在我遇到的问题是有时SignProfile来null,但ValidationProfile不是null。因此,按照上面的代码,不执行预期的代码片段。

有人可以指导我吗?我可以使用其他一些系列吗?

2 个答案:

答案 0 :(得分:0)

这是什么意思?

if (signProfiles != null && validationProfiles != null) {

    for (SignProfile signProfile : signProfiles) {
        //do something with signProfile
    }

    for (ValidationProfile validationProfile : validationProfiles) {
        //do something with validationProfile
    }
}

或嵌套版本......

if (signProfiles != null && validationProfiles != null) {

    for (SignProfile signProfile : signProfiles) {
        //do something with signProfile

        for (ValidationProfile validationProfile : validationProfiles) {
        //do something with validationProfile, and signProfile?
        }
    }
}

答案 1 :(得分:0)

如果您使用的是Java 5或更高版本,则可以使用foreach语法:

List<SignProfile> signProfileList = new ArrayList<>;
List<ValidationProfile> validationProfileList = new ArrayList<>;

if(signProfileList != null) {
  for(SignProfile sp : signProfileList) {
    // you can work with the sp variable here, which represents the current item from signProfileList
    if(validationProfileList != null) {
      for(ValidationProfile vp : validationProfileList) {
        // you can work with vp variable here, which represents the current item from validationProfileList
      }
    }
  }
}

注意:我已经重命名了一些变量,以使代码更清晰。

顺便问一下,你确定要嵌套这些吗?它们似乎并不相关。